2017-02-05 2 views
0

Ich versuche eine POST-Anfrage von Swagger UI an meinen Server (Lumen) zu stellen, aber jedes Mal bekomme ich nur ein leeres Array.

Swagger UI Anfrage:

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ \ 
"stocks":[ \ 
    { \ 
     "contract-number":0, \ 
     "metal-id":0, \ 
     "amount":0, \ 
     "unit":"string" \ 
    } \ 
] \ 
}' 'http://backend.mywebsite.de/v1/stocks' 

Mein Controller:

... 
public function stocksPost(Request $request) 
{ 
     dd($request->all()); 
} 
... 

Und die Ausgabe:

/var/www/vhosts/localhost/htdocs/vendor/illuminate/support/Debug/Dumper.php:23: 
array(0) { } 

Aber wenn ich die gleiche Anfrage mit Postman senden, alles funktioniert gut :

/var/www/vhosts/localhost/htdocs/vendor/illuminate/support/Debug/Dumper.php:23: 
array(1) { 
    'stocks' => 
    string(68) "[{"contract-number": 0,"metal-id": 0,"amount": 0,"unit": "string"} ]" 
} 

Ich bekomme mein Problem nicht, könnte mir bitte jemand erklären?

+0

Öffnen Sie Ihre Postbote-Anfrage und bitten Sie sie, Code für die Anfrage zu generieren. Wählen Sie cURL als Sprache und validieren Sie sie gegen Ihre Swagger-Anfrage – Daniel

Antwort

0

Das Problem mit der Swagger-Anfrage war, dass es meine Daten in Anführungszeichen schickte, weil es nicht als JSON verifiziert werden konnte und nur von php: // input als String erhalten werden konnte. Ich löste das Problem nur mit meinen eigenen Curl-Anfragen, wo ich entweder JSON-Daten in einfache Anführungszeichen setzen oder als externe Datei anhängen.

curl -X POST -d @foo/bar/contractsPayload.json http://backend.mywebsite.de/v1/stocks -H 'Content-Type: application/json' -H 'Accept:application/json' 
Verwandte Themen