|   |   | 
| 
 | Как в 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) чтоб массивы добавлял, например, диапазоны     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |