OpenAPI/Swagger никто не щупал?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 28.03.22 12:20
Оценка:
Здравствуйте!

OpenAPI — это вот это — https://spec.openapis.org/oas/v3.1.0

Swagger — раньше оно всё так называлось, а теперь swagger'ом называют инструментарий для обработки OpenAPI спек.

Меня интересует раздел component/schemas — https://spec.openapis.org/oas/v3.1.0#schema-object

В разделе "4.8.24.2 Fixed Fields" есть несколько полей, но в том API, YAML которого у меня есть, их нет, но там есть куча других.

В разделах "4.8.24 Schema Object" и "4.8.24.1 Properties" есть несколько ссылок, я там полазал, но не нашел описания того, что я вижу в своём ямле.
У меня что-то такое:
  Скрытый текст

components:
securitySchemes:
sso_auth:
type: http
scheme: bearer

schemas:
Empty:
type: object
required:
— trackingId
— payload
— status
properties:
trackingId:
type: string
payload:
type: object
status:
type: string
default: Ok
Error:
type: object
required:
— trackingId
— payload
— status
properties:
trackingId:
type: string
status:
type: string
default: Error
payload:
type: object
properties:
message:
type: string
code:
type: string




По типам в спеке есть раздел — https://spec.openapis.org/oas/v3.1.0#data-types
А вот по остальным полям — ничего

Я вообще в этой теме новичек. Подскажите, где чего внятное искать?

ЗЫ Это вроде про REST — т.е. web. Если в другой раздел писать, то куда?
Маньяк Робокряк колесит по городу
Отредактировано 28.03.2022 12:20 Marty . Предыдущая версия .
Re: OpenAPI/Swagger никто не щупал?
От: bnk СССР http://unmanagedvisio.com/
Дата: 28.03.22 12:35
Оценка:
Здравствуйте, Marty, Вы писали:

M>Я вообще в этой теме новичек. Подскажите, где чего внятное искать?

M>ЗЫ Это вроде про REST — т.е. web. Если в другой раздел писать, то куда?

А ты с какой целью интересуешься?

В целом это чисто утилитарная вещь.
То есть, типичный сценарий использования — сгенерировать прокси для REST клиента, чтобы руками его не писать.
То чем давно был IDL (COM), потом wcf/soap...

То есть, зачем там какую-то схему копать-то?
Обычно есть софт, который за тебя это делает, если ты пользователь, а не член комитета W3C
Типа "Add Service...", Yes, Yes, Finish.
Отредактировано 28.03.2022 12:39 bnk . Предыдущая версия .
Re[2]: OpenAPI/Swagger никто не щупал?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 28.03.22 12:54
Оценка:
Здравствуйте, bnk, Вы писали:

M>>Я вообще в этой теме новичек. Подскажите, где чего внятное искать?

M>>ЗЫ Это вроде про REST — т.е. web. Если в другой раздел писать, то куда?

bnk>А ты с какой целью интересуешься?


Хочу генератор написать. Для плюсиков нашел только для кути, мне оно не подходит. Да и вообще, все эти генераторы в основном на джаве, как-то надо было — полдня приседал, пока заработало


bnk>В целом это чисто утилитарная вещь.

bnk>То есть, типичный сценарий использования — сгенерировать прокси для REST клиента, чтобы руками его не писать.
bnk>То чем давно был IDL (COM), потом wcf/soap...

Я типа в курсе


bnk>То есть, зачем там какую-то схему копать-то?

bnk>Обычно есть софт, который за тебя это делает, если ты пользователь, а не член комитета W3C

Ну, вот я что-то софта нормального не нашел. Ну и тут нюанс — мне не надо ничего по HTTP(S) передавать, и кучу все генерить соответственно, не надо, а вот как раз типы и их (де)сериализацию C++ <-> JSON — мне хочется получить удобные для себя, а такого мне ни один инструмент не даст
Маньяк Робокряк колесит по городу
Re[3]: OpenAPI/Swagger никто не щупал?
От: bnk СССР http://unmanagedvisio.com/
Дата: 28.03.22 13:45
Оценка:
Здравствуйте, Marty, Вы писали:

bnk>>А ты с какой целью интересуешься?


M>Хочу генератор написать. Для плюсиков нашел только для кути, мне оно не подходит.


Фига у тебя свободного времени

Что делают программисты, когда собираются вместе?
Пишут фреймворк!


bnk>>То есть, зачем там какую-то схему копать-то?

bnk>>Обычно есть софт, который за тебя это делает, если ты пользователь, а не член комитета W3C

M>Ну, вот я что-то софта нормального не нашел. Ну и тут нюанс — мне не надо ничего по HTTP(S) передавать, и кучу все генерить соответственно, не надо, а вот как раз типы и их (де)сериализацию C++ <-> JSON — мне хочется получить удобные для себя, а такого мне ни один инструмент не даст


Для C++ у меня к сожалению нет идей. Я использовал тот самый swagger-codegen на жаве (openapi-generator).
Там вообще-то все на шаблонах, которые можно переписать по своему усмотрению (и это достаточно просто)
https://openapi-generator.tech/docs/templating/
Отредактировано 28.03.2022 13:45 bnk . Предыдущая версия .
Re[4]: OpenAPI/Swagger никто не щупал?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 28.03.22 15:19
Оценка:
Здравствуйте, bnk, Вы писали:

M>>Хочу генератор написать. Для плюсиков нашел только для кути, мне оно не подходит.


bnk>Фига у тебя свободного времени

bnk>

bnk>Что делают программисты, когда собираются вместе?
bnk>Пишут фреймворк!


Да чего там писать-то?


bnk>Для C++ у меня к сожалению нет идей. Я использовал тот самый swagger-codegen на жаве (openapi-generator).


Я вроде бы тоже, но уже не помню


bnk>Там вообще-то все на шаблонах, которые можно переписать по своему усмотрению (и это достаточно просто)

bnk>https://openapi-generator.tech/docs/templating/

Чота я посмотрел, по-моему, разобраться в этом будет гораздо дольше, чем самому накидать. Беглый взгляд показал, что там и на богомерзской джаве чего-то лабать придётся. А так, на православных плюсиках по-быстрому наколбашу

Но хотя в сорцы этого генератора глянуть можно
Маньяк Робокряк колесит по городу
Re[5]: OpenAPI/Swagger никто не щупал?
От: bnk СССР http://unmanagedvisio.com/
Дата: 28.03.22 15:44
Оценка:
Здравствуйте, Marty, Вы писали:

M>Да чего там писать-то?


Да оно часто так кажется, пока не начнешь на самом деле писать

bnk>>https://openapi-generator.tech/docs/templating/


M>Чота я посмотрел, по-моему, разобраться в этом будет гораздо дольше, чем самому накидать. Беглый взгляд показал, что там и на богомерзской джаве чего-то лабать придётся. А так, на православных плюсиках по-быстрому наколбашу

M>Но хотя в сорцы этого генератора глянуть можно

Не, там только шаблоны надо править, все делается из командной строки, капот открывать не обязательно (в исходники на жаве залазить не нужно)
Шаблоны там на mustache.
Re[6]: OpenAPI/Swagger никто не щупал?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 28.03.22 15:55
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Не, там только шаблоны надо править, все делается из командной строки, капот открывать не обязательно (в исходники на жаве залазить не нужно)


Это максимально просто?


bnk>Шаблоны там на mustache.


Ещё мусташ какой-то ковырять
Маньяк Робокряк колесит по городу
Re[7]: OpenAPI/Swagger никто не щупал?
От: bnk СССР http://unmanagedvisio.com/
Дата: 28.03.22 15:59
Оценка:
Здравствуйте, Marty, Вы писали:

M>Здравствуйте, bnk, Вы писали:


bnk>>Не, там только шаблоны надо править, все делается из командной строки, капот открывать не обязательно (в исходники на жаве залазить не нужно)


M>Это максимально просто?


Ну, типа, да

bnk>>Шаблоны там на mustache.


M>Ещё мусташ какой-то ковырять


Лучше день потерять зато потом за пять минут долететь
Re: OpenAPI/Swagger никто не щупал?
От: vaa  
Дата: 28.03.22 16:02
Оценка:
https://swagger.io/tools/
насчет с++ не знаю. интересовал C# F#.
если сервис нормальный, то проблем нет, а если типы сложные, то или генерация не проходит(банально названия файлов могут быть длинные)
или в рантайме (F# на rsdn api) падает.
но конечно лучше сначала попробовать сгенерить.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: OpenAPI/Swagger никто не щупал?
От: maxkar  
Дата: 29.03.22 17:44
Оценка: 6 (1)
Здравствуйте, Marty, Вы писали:

M>Меня интересует раздел component/schemas — https://spec.openapis.org/oas/v3.1.0#schema-object

M>В разделе "4.8.24.2 Fixed Fields" есть несколько полей, но в том API, YAML которого у меня есть, их нет, но там есть куча других.

"Элементов базового словаря" (keywords from base vocabulary). Эта спецификация писалась марсианами, поэтому нужно уметь немного читать по марсиански.

M>В разделах "4.8.24 Schema Object" и "4.8.24.1 Properties" есть несколько ссылок, я там полазал, но не нашел описания того, что я вижу в своём ямле.


Ну... Вот вам properties, required, type, default.

M>Я вообще в этой теме новичек. Подскажите, где чего внятное искать?


По схеме можно немного полистать официальный учебник. Там, конечно, не много. Но общее впечатление позволяет составить.
Re: OpenAPI/Swagger никто не щупал?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.04.22 18:51
Оценка:
Здравствуйте, Marty, Вы писали:

А накидайте мне плс ссылок на какие-нибудь OpenAPI спеки, которые вы видели/использовали.

У меня есть сейчас спека от тинькова по ихнему АПИ, я с ней разбираюсь, но там скорее всего не все возможности использованы.

Я пока решил пойти таким путем (чтобы разобраться, что там вообще бывает/может быть):

  1. Гружу схему в JSON
  2. Десериализую в свои структуры
  3. Сериализую обратно в JSON
  4. Делаю json-diff между тем, что на входе, и тем, что я сериализовал из своих структур
  5. Смотрю по дифу, какие поля не обработал — дописываю и по новой

Чтобы получше разобраться, нужно больше всяких разных OpenAPI спек
Маньяк Робокряк колесит по городу
Re[2]: OpenAPI/Swagger никто не щупал?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.04.22 18:52
Оценка:
Здравствуйте, vaa, Вы писали:

vaa>но конечно лучше сначала попробовать сгенерить.


Не наш метод

Да и просто нет такого генератора, который бы устроил
Маньяк Робокряк колесит по городу
Re[2]: OpenAPI/Swagger никто не щупал?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.04.22 18:53
Оценка:
Здравствуйте, maxkar, Вы писали:

M>Ну... Вот вам properties, required, type, default.


M>>Я вообще в этой теме новичек. Подскажите, где чего внятное искать?


M>По схеме можно немного полистать официальный учебник. Там, конечно, не много. Но общее впечатление позволяет составить.


Спс за ссылки, полистаю
Маньяк Робокряк колесит по городу
Re[2]: OpenAPI/Swagger никто не щупал?
От: GarryIV  
Дата: 01.04.22 18:57
Оценка: 6 (1)
Здравствуйте, Marty, Вы писали:

M>Чтобы получше разобраться, нужно больше всяких разных OpenAPI спек

Держи https://github.com/APIs-guru/openapi-directory/tree/main/APIs
WBR, Igor Evgrafov
Re[3]: OpenAPI/Swagger никто не щупал?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.04.22 19:11
Оценка:
Здравствуйте, GarryIV, Вы писали:

M>>Чтобы получше разобраться, нужно больше всяких разных OpenAPI спек

GIV>Держи https://github.com/APIs-guru/openapi-directory/tree/main/APIs

О, спасибо, поковыряюсь
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.