|
Как в Swagger правильно описать запрос | ☑ | ||
---|---|---|---|---|
0
Sin_city
31.05.21
✎
14:58
|
Я уже стреляюсь....
Нужен CURL запрос определенного вида. curl -X 'POST' \ 'https://a**********net/company/get-m*****r-details' \ -H 'accept: application/json' \ -H 'Authorization: Bearer 616a2cbbc392c798***1dae2bd0c2093af4f399e95f48d' \ -H 'Content-Type: application/json' \ -d '{ "name": "Dmitriy" }' Swagger в итоге делает и это конечно. Большие вопросы у меня с секцией -d 1. Каким оператором внутри Swagger я вообще определяю, как у меня -d будет собираться. Сам я смог создать "дуромер" (брал за пример PET), Т.е. в коде жестко прописываешь (в моем случае "example: Dmitriy", перед нажатием на Execute есть возможность переписать как угодно и будет соответствующий запрос. parameters: - in: path name: name description: Имя required: true schema: type: string requestBody: content: application/json: schema: type: "object" properties: name: description: Update type: string example: Dmitriy required: - name 2. Не устраивают следующее: Есть специальное поле в разделе "Parameters" Так вот, в итоге получается у меня 2 поля, и в CURL запрос идет то, что я ввел в поле "request body" Что я вводил в "Parameters" там не передается в поле "request body" и как следствие в CURL Разумеется. я хочу отобразить в JSon то, что я ввел в соответствующее поле в разделе "Parameters". Как сделать? 3. Я скачал несколько Yaml файлов у серьезных компаний, например интернет магазин "Шелл". Но там requestBody не используется или используется, но совсем не так. Как мне победить Swagger? Например как передавать {name} в графу в предпоследнюю строку с "example" Как только не пробовал, никак. В залоловок - пожалуйста. Еще оно на меня ругается. Это туда же Path parameter "name" must have the corresponding {name} segment in the "/c************all" path |
|||
1
Kesim
31.05.21
✎
15:03
|
postman в помощь (делаешь интуитивно потом результат можно получить в нескольких форматах, в том числе курл)
|
|||
2
Sin_city
31.05.21
✎
15:21
|
В постмане все работает. На сервере (через PHP файлы все работает). И В Swaggere все работает.
Но там (в Swaggere) получается 2 поля. Ввод значения и отправка JSON запроса. Так вот, Уходит JSON А ожидает юзер, что уйдет значение что он вводил. Я же ожидаю, что Json должен измениться перед оправкой |
|||
3
Вафель
31.05.21
✎
16:38
|
Передавай не жсон, а x-url-encoded
|
|||
4
Вафель
31.05.21
✎
16:40
|
Нет не так, ты в строке сервера не указал name
|
|||
5
Sin_city
31.05.21
✎
17:21
|
Проблема увы не с тем что он не передает, он передает и все работает. Проблема с тем, что ОНО передается не совсем то что я хочу.
Да, у меня есть возможность изменить.... Но как то не то Мне для руководства нужен JSON, так как вся документация на JSONах. |
|||
6
Sin_city
31.05.21
✎
17:28
|
Есть два поля
"Имя сотрудника", секция Parameters. ТАм я могу ввести что хочу, например Igor Секция "Request body". Там Json, который собирается из кода (Example). Там стоит по умолчанию "Dmitriy" Перед "смертью" (перед запросом) юзер может зайти в поле "Request body" и как угодно поле изменить. Однако если он не поменяет, то уйдет в запрос "Dmitriy" Ни одному идиоту не придет в голову после того, как он ввел имя в нужное поле еще раз ввести то же самое в другое поле. при том что JSON чуть сложнее чем поле ввода параметров. Поэтому работать будет то что я сделал условно неправильно (но если смотреть PetShop, с его копировал, то у них так сделано всегда). И вообще нет раздела "Parameters" Я поверить не могу, что в example: "что нибудь" я никак не могу вставить {name} В моем случае это "igor" При том что в Header я вытаскиваю {name} на раз. |
|||
7
Asmody
31.05.21
✎
17:56
|
Parameters in path означает, что твои параметры будут частью URL, причем именно как часть имени ресурса, а не параметры в смысле http.
|
|||
8
Asmody
31.05.21
✎
17:58
|
Ключ -d в curl – это тело запроса
Собственно, там ты передаешь свой json или что-то другое. |
|||
9
Sin_city
31.05.21
✎
18:20
|
- in: path
У меня есть. Но передается не то что красным, а то что зеленым. Зеленое меня берется из Example. Да, есть возможность желтое поправить перед отправкой. Но я думаю что эта штука (Swagger) должна работать более элегантно и передавать и в запрос, и в CURL то, что выделено сейчас красным. К удивлению изменение изменение "красного" не приводит к изменению "зеленого". А мне надо... Сюда нельзя вставлять картинки, я залил на файлообменник. Тут и красное и зеленое. Кто хоть раз видел Swagger, тому все понятно https://transfiles.ru/0x0aq |
|||
10
Sin_city
31.05.21
✎
18:27
|
Опечатка, есть возможность зеленое поправить перед отправкой. Вечер))))
|
|||
11
Garykom
гуру
31.05.21
✎
19:29
|
(9) ты бы хоть документацию почитал и примеры посмотрел а?
path это ресурс на сервере ну там /users например |
|||
12
Garykom
гуру
31.05.21
✎
19:34
|
||||
13
Sin_city
31.05.21
✎
20:17
|
Я очень хочу сказать с чьего нибудь сайта Yaml файл, из которого станет понятно "как".
Собственно я потому и в "пятой точке", что сделал копию с Pet Shop У Озона скачать файл не получилось.... Скачал у Шелла. Но тоже не понял. То ли ключей у меня нет... Там 4 пароля. 123456 пробовал, не подошло. Ночью качну "прогноз погоды", вроде там сделано (если сделано) как я хочу.... |
|||
14
Sin_city
31.05.21
✎
20:18
|
Спецификацию про Paths and Operations по ссылке курил, спасибо.
Но единственно что понял - что Paths не для этого... |
|||
15
Вафель
31.05.21
✎
20:55
|
Могу по мисте сваггер дать
|
|||
16
Asmody
31.05.21
✎
21:10
|
(15) твой не правильный
|
|||
17
Asmody
31.05.21
✎
21:10
|
(14) ты хоть понимаешь, что такое swagger?
|
|||
18
Волшебник
модератор
31.05.21
✎
21:30
|
(15) Давай договоримся о совместной разработке движка
|
|||
19
Asmody
31.05.21
✎
23:31
|
(18) Давай движок на OneScript.Web перепишем? :)
|
|||
20
Garykom
гуру
01.06.21
✎
00:14
|
(19) Нет уж, сделаем все правильно! Сначала напишем свой аналог OneScript
|
|||
22
Sin_city
01.06.21
✎
05:20
|
||||
23
Sin_city
01.06.21
✎
06:50
|
Вафель, Передавай не жсон, а x-url-encoded
Вот это метод работает. Но хочется через "параметры" и JSON, так эстетичней. |
|||
24
Sin_city
01.06.21
✎
06:51
|
В смысле и старый метод работал, но при новом методе 1 редактируемое поле, юзер не ошибется....
JSON Не виден... печалька. |
|||
25
Asmody
01.06.21
✎
07:14
|
[В данном случае Swagger - это YAML файл] - я думаю, что дальше продолжать дискуссию не имеет смысла.
|
|||
26
Asmody
01.06.21
✎
07:28
|
Swagger - это не стандарт, не протокол, не спецификация и, тем более, не "YAML-файл". Это всего-навсего частный формат _документирования_ REST API. Не более того.
|
|||
27
АнализДанных
01.06.21
✎
09:42
|
(0) В свое время очень долго бился с созданием файла для swagger. Я пока твой вопрос до конца не понял, но может тебе это поможет:
parameters: - name: 'Parametr_1' in: 'query' description: 'Параметр №1' required: true deprecated: false schema: type: 'string' format: 'string' - name: 'Parametr_2' in: 'query' description: ''Параметр №2' required: true deprecated: false schema: type: 'string' format: 'string' - name: 'Parametr_3' in: 'query' description: 'Параметр №3 (тип массив)' required: true deprecated: false schema: type: 'array' items: type: 'object' properties: id: type: 'string' format: 'string' description: 'Параметр №3' - name: 'Parametr_3' in: 'query' description: 'Параметр №4' required: true deprecated: false schema: type: 'array' items: type: 'object' properties: id: type: 'string' format: 'string' description: 'Параметр №4' |
|||
28
АнализДанных
01.06.21
✎
09:46
|
(0) Там было какое-то условие, что если ты используешь в качестве параметра тип body, то у тебя может быть только 1 параметр, но зато он сложного типа, например "структура" и в нее ты уже запихиваешь сколько тебе надо параметров. Важно, что такой параметр только 1! Если надо несколько параметров передавать, то я реализовывал, как у меня выше написано.
|
|||
29
Вафель
01.06.21
✎
09:47
|
||||
30
Йохохо
01.06.21
✎
10:26
|
а для YAML есть какой то редактор удобный?
|
|||
31
Вафель
01.06.21
✎
10:33
|
а чем редактор свагерра не подошел?
|
|||
32
Вафель
01.06.21
✎
10:34
|
(30) редакторов то полно, но в каждой области он свой
|
|||
33
Вафель
01.06.21
✎
10:34
|
Как задача то стоит?
|
|||
34
Йохохо
01.06.21
✎
10:39
|
(32) чтоб массивы добавлял, например, диапазоны
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |