Donc, j'ai ce système Im travaillant sur l'utilisation des rails 4 et Grape Api. Fondamentalement, il regroupe des informations sur les services de maintenance exécutés sur les véhicules. Mes modèles sont définis comme suit:Grape api - Comment POSTER des ressources imbriquées?
# service.rb
class Service < ActiveRecord::Base
has_many :service_items
#service_item.rb
class ServiceItem < ActiveRecord::Base
belongs_to :service
Im mettre en œuvre une API afin que les applications externes peuvent poster des services sur mon système. Chaque service a une liste d'un ou plusieurs éléments de service associés. J'ai un itinéraire comme: example.com/api/v1/services pour POST. Ma question est comment puis-je faire cela pour accepter un poste avec les attributs de service, et les attributs service_items imbriqués avec lui?
Je lis docs et a commencé quelque chose comme ce raisin:
#service_providers_api.rb
resource :services do
desc "Post a Service"
params do
#requires :category_id, type: Integer
requires :description, type: String
requires :plate, type: String
requires :mileage, type: Integer
requires :date, type: Date
optional :cost, type: BigDecimal
requires :service_items do
requires :description, type: Integer
end
end
post do
.
.
.
end
end
Mais je ne suis pas sûr de savoir comment je peux monter les données post pour que cela fonctionne. Est-il possible de faire tout cela dans une seule requête comme ça, ou dois-je séparer chaque requête? par exemple. un POST pour recevoir le service, puis une série de POST pour chaque service_item associé. Quelle est la meilleure approche recommandée dans ce scénario?