как изменить формат ответа с формата fast_jsonapi на формат ответа AMS gem - PullRequest
1 голос
/ 19 марта 2019

Я хочу изменить Формат ответа для fast_jsonapi gem с:

{
    "data": {
        "id": "8",
        "type": "directory",
        "attributes": {
            "firstname": "Naoufal",
            "lastname": "Huster",
        }
    }
}

На это:

{
  "id": "8",
  "firstname": "Naoufal",
  "lastname": "Huster",
}

Я перехожу с использования AMS на использование fast_jsonapi, я хочуиспользовать fast_jsonapi, но сохранять тот же формат ответа json AMS при рендеринге данных.

Ruby 2.5.0 Rails 5.2.1 gem fast_jsonapi

Ответы [ 2 ]

1 голос
/ 19 марта 2019

Вы можете использовать разреженные наборы полей , чтобы выборочно выбирать, какие поля вы хотите.

class MovieSerializer
  include FastJsonapi::ObjectSerializer

  attributes :name, :year
end

serializer = MovieSerializer.new(movie, { fields: { movie: [:name] } })
serializer.serializable_hash

Если вам нужно еще больше сгладить данные, вы можете создать вспомогательный метод для ручного сглаживания JSON или попытаться сгладить его, используя стандартную функцию .flatten для массива или хеша, в зависимости от формата данных. Вы не можете выполнить выравнивание, если вы уже преобразовали его в формат JSON.

1 голос
/ 19 марта 2019

Я думаю, что это невозможно.fastjson_api gem соответствует стандарту json api .

Также в репо был задан похожий вопрос: source

...