Bonjour à tous,
J'utilise Swagger pour créer une API et jusqu’à maintenant je m'en sortait à peut près bien (je débute) mais la je tombe sur un os et j'espère trouver de l'aide parmi vous
J'ai une fonction qui fonctionne parfaitement via le site laravel qui attend un tableau d'objet (ici Layout) ainsi que 2 paramètre (user et template).
L'idée est de parcourir la liste de Layout et mettre à jour les informations qui vont bien.
J'enlève le superflue et voici se qu'il reste :
Donc voici le code swagger qui permet de faire en théorie fonctionner la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public function putLayout(Request $request, $user_id, $template_code) { ... foreach ($request->template_layouts as $layout) { ... } ... }
Voici le résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 "/api/layouts/{user_id}/{template_code}" : { "put" : { "tags": [ "Layouts" ], "summary": "Layout detail.", "description" : "", "operationId" : "putLayout", "produces": { "0": "application/xml", "1": "application/json" }, "parameters" :[ { "name" : "user_id", "in" : "path", "description" : "ID user.", "required" : true , "type" : "integer", "format": "int64", "default" : 1 }, { "name" : "template_code", "in" : "path", "description" : "Code type template.", "required" : true , "type" : "string", "default" : "DEVICES" }, { "in" : "body", "name" : "template_layouts", "description" : "List of layouts", "schema": { "type": "array", "items": { "$ref": "#/definitions/layout" } } } ], "responses" : { "200" : {"description" : "Success."}, "400" : {"description" : "Bad request. ID must be an integer and larger than 0."}, "401" : {"description" : "Authorization information is missing or invalid."}, "404" : {"description" : "Specified ID was not found."}, "5XX" : {"description" : "Unexpected error."} } } }
Et quand je l'exécute :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 500 Undocumented Error: Internal Server Error ErrorException: Invalid argument supplied for foreach() in file ...
En gros si je return $request->template_layouts c'est vide mais si je return juste $request il me retourne :
Je sèche totalement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Response body [ { "layout_x": 0, "layout_y": 0, "layout_w": 2, "layout_h": 2, "layout_i": "0", "layout_template": 1 } ]![]()
Si vous avez une idée je prends !
Merci de votre aide.
Steve
Partager