170 похожих чатов

Так. go-swagger, его UI. MyDefinition: type: object

discriminator: action
required:
- action
properties:
action:
type: string
enum:
- MyDefinitionActionOne
- MyDefinitionActionTwo
MyDefinitionActionOne:
allOf:
- $ref: '#/definitions/MyDefinitionAction'
- type: object
# ...
MyDefinitionActionTwo:
allOf:
- $ref: '#/definitions/MyDefinitionAction'
- type: object
#...

Не показывает в UI модели MyDefinitionActionOne и MyDefinitionActionTwo.

Но главное - их не есть Postman. Тьфу пропасть. Модель данных в json руками что-ли писать в итоге?

48 ответов

63 просмотра

задача-то твоя в чем?

🏳️ Phil-Kulin Автор вопроса

1. Две разные валидации в зависимости от поля (кнопки по факту) 2. Составление json в ручную для теста сложное, а все инструменты отказались понимать полиморфный тип для визуализации

ты тут в энам строку будто объект хочешь засунуть...

🏳️ Phil-Kulin Автор вопроса
Александр Костюченко
ты тут в энам строку будто объект хочешь засунуть....

И будто бы спецификация Open API так позволяет. Та-да. И главное - go-swagger очень внезапно по спецификации генерирует рабочий объект https://goswagger.io/use/spec/discriminated.html

🏳️ Phil Kulin
1. Две разные валидации в зависимости от поля (кно...

ты же понимаешь, что полиморфизм для API - абсолютное зло?

🏳️ Phil-Kulin Автор вопроса

Это спека

🏳️ Phil-Kulin Автор вопроса
Daniel Podolsky
ты же понимаешь, что полиморфизм для API - абсолют...

1. Не очень понятно как отработать 2 кнопки 2. Куча ситуаций со списками похожих

🏳️ Phil Kulin
1. Не очень понятно как отработать 2 кнопки 2. Куч...

1. почему ты вообще мыслишь в терминах кнопок? ты во фронтендеры подался? 2. списки похожих - это одно, а полиморфизм - другое.

Гы гы) добро пожаловать в клуб 😂 Между спецификацией и реальными возможностями находится буквально пропасть

🏳️ Phil-Kulin Автор вопроса
Daniel Podolsky
1. почему ты вообще мыслишь в терминах кнопок? ты ...

1. Хорошо. У меня разная верификация в зависимости от некоего признака. 2. Нет, не понимаю. Хорошо, списки чего то,что похоже только id

🏳️ Phil Kulin
1. Хорошо. У меня разная верификация в зависимости...

разная бизнес логика или просто разные реквесты?

🏳️ Phil-Kulin Автор вопроса
🏳️ Phil Kulin
1. Хорошо. У меня разная верификация в зависимости...

у меня есть к тебе радикальное предложение: proto+protovalidate+grpc-gateway+grpc ко всему этому надо приложить buf и генерацию сваггера из proto у нас будет об этом доклад на конфе, но тебя я и сейчас готов проконсультировать

Daniel Podolsky
у меня есть к тебе радикальное предложение: proto...

а можно ссылку на доклад, чтоб послушать?

Alisher
Еще не состоялся

А что за конфа? Когда будет ?

Artur
А что за конфа? Когда будет ?

Прогуглите голанг конф, там есть анонс, дату не помню

🏳️ Phil-Kulin Автор вопроса
Daniel Podolsky
у меня есть к тебе радикальное предложение: proto...

Это ты усложняешь. Хрен с ним с (1), там лучше действительно сделать отдельным ендпойнтом с разными definition, совпадающим по полям. А вот со списком засада. Последовательный список текста и картинок.

🏳️ Phil Kulin
Это ты усложняешь. Хрен с ним с (1), там лучше дей...

Ты хочешь разом все файлы загрузить? У тебя действительно там процесс верификации документов? Я просто думал, что ты ошибся терминами

🏳️ Phil-Kulin Автор вопроса
🏳️ Phil Kulin
1. Хорошо. У меня разная верификация в зависимости...

2. Сделать объект, где каждый другой объект - необязательное поле. Но если он есть, то там проверка уже обязательная. Спасибо, доктор

🏳️ Phil-Kulin Автор вопроса
Artur
Ты хочешь разом все файлы загрузить? У тебя действ...

Да причём тут файлы. Просто вразнобой текст и ссылки на картинки

🏳️ Phil Kulin
Да причём тут файлы. Просто вразнобой текст и ссыл...

[ { "data": "http://url/image.jpeg", "type": "image" }, { "data": "my-text", "type": "text" } ]

🏳️ Phil-Kulin Автор вопроса
wm0
[ { "data": "http://url/image.jpeg", "...

Супер. И как это выглядит в swagger.yaml? И во что должно превратиться в Go?

🏳️ Phil Kulin
Супер. И как это выглядит в swagger.yaml? И во что...

Ну вроде стандартная структура, которая соенерится гошкой, все поля одинаковые, только значения разные

🏳️ Phil-Kulin Автор вопроса
wm0
Ну вроде стандартная структура, которая соенерится...

Стоп. Я хочу использовать такие плюшки swagger как "я написал проверку за тебя"

🏳️ Phil Kulin
2. Сделать объект, где каждый другой объект - необ...

Вы можете определить внутри самого объекта, какие поля required/no-required, а далее его встраивать в другие объекты как no-required То есть, если объект передаётся, то его поля будут проверяться (но здесь конечно нужно, чтобы его передавали явно)

🏳️ Phil Kulin
Стоп. Я хочу использовать такие плюшки swagger как...

Я подумал, что речь про валидацию в го. Зачем в свагере валидация такая?

🏳️ Phil-Kulin Автор вопроса
🏳️ Phil-Kulin Автор вопроса
wm0
[ { "data": "http://url/image.jpeg", "...

Хорошо, а если набор полей разный?

🏳️ Phil Kulin
Хорошо, а если набор полей разный?

Либо разные эндпоинты, либо общий внутри data сделать возможность отправить всевозможные наборы полей. Например для image один набор в {}, для текста другой и тд и также по типу выбирать какое поле парсить

🏳️ Phil Kulin
Хорошо, а если набор полей разный?

Если набор полей разный - то это разные объекты, очевидно же)

🏳️ Phil-Kulin Автор вопроса
🏳️ Phil Kulin
Как сделать их список?

Список чего? Объектов или полей?

🏳️ Phil-Kulin Автор вопроса
А4 Одноногое
Вы можете определить внутри самого объекта, какие ...

type: object required: - id properties: id: type: string format: uuid objone: $ref: '#/definitions/ObjOne' objtwo: $ref: '#definitions/ObjTwo' definitions: ObjOne: type: object required: - field1 properties: field1: type: integer ObjTwo: type: object required: - field1 - field2 - field3 properties: field1: type: string field1: type: integer field1: type: bool типа так

🏳️ Phil Kulin
type: object required: - id prope...

И в чём здесь заключается проблема?

🏳️ Phil-Kulin Автор вопроса
А4 Одноногое
Да

И единственная проблема которая остаётся - не прилетело ничего. Но это вручную проверяется быстрее, чем мучения с allOf. Да, спасибо

🏳️ Phil Kulin
И единственная проблема которая остаётся - не прил...

Можно обернуть в ещё один объект, который в запросе будет required

🏳️ Phil Kulin
И единственная проблема которая остаётся - не прил...

А почему это проблема? object, который вы написали выше, в запросе делаете required

Daniel Podolsky
у меня есть к тебе радикальное предложение: proto...

Вы считаете вершиной применения дженериков функции must и pointer и при этом даёте консультации? Надеюсь бесплатные?

Какие дженерики — такие и вершины применения хД

Похожие вопросы

Обсуждают сегодня

Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
38
Проблема с Windows scripting control Множество объектов получают iDispatch обертки и отдаются в скрипты. При этом скрипты могут эти обертки держать живыми очень долго, наприм...
Arioch The
16
Я тут пытаюсь переработать архитектуру подсистемы памяти ядра во что-то осмысленное. Есть pmm, который создает набор range’ей(пока что только для ядра, потом для юзерспейса), ...
Evg Resh
9
Скажите, можно ли как-то "переместить" динамический массив из одной переменной в другую? Скажем, переместить из TList<> в TArray<>. Именно переместить, а не скопировать. Если ...
Eugene Krasnikov (ᴊɪɴ x)
37
комрады, че-та лыжы не едут var tmpFont: TFont; begin tmpFont:= TFont.Create; try case rgFontColor.ItemIndex of 0: tmpFont.Color:= clWindowText; 1: tmpFo...
Ed Doc
34
Вот еще криповенькая штука. uMain.pas(517,3) Warning: Case statement does not handle all possible cases И ЧО? 😂
Александр (Rouse_) Багель
20
Интересно, нет ли какого-то способа получить из dll не адрес самой метки, а адрес со смещением?
The Bird of Hermes
54
коллеги, а есть простой способ определить, что программу из под Delphi запускают?
Михаил
10
40 тысяч в час / 3600 = 11,11 в секунду... Вам точно нужна очередь? (я просто не знаю "контекста") Такое количество запросов любое приложение замечательно "прожует" и не попер...
Igor Mitin
5
М-да. Почему бы просто со stringlist не работать?
Michael Longneck
23
Карта сайта