Ich mag eine API-Backend testen, die wie dargestellt in dem folgenden Beispiel bestimmt ist:Wie array Werte über curl?
http://localhost:3000/api/v1/shops/1.json
Die JSON Antwort:
{
id: 1,
name: "Supermarket",
products: [
"fruit",
"eggs"
]
}
Hier ist das entsprechende Modell:
# app/models/shop.rb
class Shop < ActiveRecord::Base
extend Enumerize
attr_accessible :name, :products
serialize :products, Array
enumerize :products, in: %w{fruit meat eggs}, multiple: true
resourcify
validates :name, presence: true, length: { in: 5..50 }
validates :products, presence: true
end
Ich möchte curl verwenden, um das Erstellen und Aktualisieren eines Eintrags zu testen. Daher verwende ich die folgenden Befehle:
erstellen:
$ curl -X POST http://localhost:3000/api/v1/shops.json -d \
"shop[name]=Supermarket&shop[products]=fruit,eggs&auth_token=a1b2c3d4"
Update:
$ curl -X PUT http://localhost:3000/api/v1/shops/1.json -d \
"shop[name]=Supermarket&&shop[products]=fruit,eggs&auth_token=a1b2c3d4"
Der Wert für products
müssen als Array vorgelegt werden. Wenn ich die oben genannten Befehle die folgende Meldung ausgeführt wird zurückgegeben:
{"errors":{"products":["is invalid"]}
Wie muss ich die Werte des products
Array schreiben, so dass es mit curl arbeitet?
Was ist, wenn ich ein bestehendes Array habe, das ich hinzufügen möchte? Würde dies das Produkt-Array löschen und durch diese beiden Produkte ersetzen? Oder würde es sie an die Liste der bestehenden Produkte anhängen? (Ich würde gerne einen Weg finden, Letzteres zu tun) –
@TomHammond Ich denke, du solltest dies als eine separate Frage veröffentlichen, ich werde dir gerne antworten! –
Sicher Sache - hier ist meine Frage: http://stackoverflow.com/questions/222327098/how-to-update-array-values-with-curl –