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

Кстати говоря, господа, а как вы фильтры в openapi описываете?

Кто-нибудь скинет пример с полноценной фильтрацией?

21 ответов

27 просмотров
А4 Одноногое- Автор вопроса

Вопрос открыт. Я вот немного попробовал, и выходит как-то громоздко

Зависит от параметров и сложности фильтров. В твоём примере лучше сделать не ne:0, а отталкиваться всё же от каких-то более абстрактных понятий. Например, сделать ?onlyActive=true (активные - то есть не удалённые). Или наоборот onlyDeleted=true. Если нужна прямо реально сложная фильтрация, то в некоторых случаях стоит присмотреться к GraphQL. Я не сторонник этой технологии, но это хотя бы стандартизировано, а всякие ne:0 - это собственный велосипед

А4 Одноногое- Автор вопроса
Dmitriy Sviridov
Зависит от параметров и сложности фильтров. В твоё...

Тоже так думаю, что это переизобретение graphql) Но graphql - это отдельная технология, там есть свою нюансы и проблемы Вообще, если делать с операторами - это придётся упарываться в enum'ы. А вот если без них, то в query можно cкармливать модель определённую в definitions/schemas, и тогда выглядит не всё так плохо :)

А4 Одноногое
Тоже так думаю, что это переизобретение graphql) Н...

Если фильтров много и нужны очень гибкие с кучей возможностей, то в REST это получится всегда велосипед) Я бы в таком случае предпочёл GraphQL даже несмотря на его недостатки. Лучше бороться с его недостатками, чем с велосипедами

то есть для всех бекофисов брать графкл, а для других нужд пилить обычный рест или грпц? так ни в какие сроки не успеешь. а в графкл: там еще н+1 проблемы реши рекурсии порешай.

Dmitriy Sviridov
Если фильтров много и нужны очень гибкие с кучей в...

а велосипедов и нет. сделал либу и внедрил ее везде. другие люди видят косяки, чинят, пр делают

Artur Karapetov
то есть для всех бекофисов брать графкл, а для дру...

Это всё очень зависит от задачи. Вполне может оказаться, что эндпоинты с гибкой фильтрацией нужны для каких-то отчётов, скажем, а больше нигде. И ничего не мешает именно эти эндпоинты сделать в виде GraphQL, а не натягивать сову на глобус, пытаясь всё API проекта в GraphQL пилить

А4 Одноногое- Автор вопроса
А4 Одноногое
Тоже так думаю, что это переизобретение graphql) Н...

Вообще, на go инструмент уже написан, которому можно скармливать подобные операторы, и его можно переиспользовать Но конечно хотелось бы, чтобы это отражалось и в спецификации тоже

Artur Karapetov
а велосипедов и нет. сделал либу и внедрил ее везд...

Всякие ne:0, которые выше были приведены в качестве примера - это и есть велосипед, потому что нет стандарта, который бы описывал это. То, что это вынесено в библиотеку, никак не отменяет этого факта

Dmitriy Sviridov
Всякие ne:0, которые выше были приведены в качеств...

это не велосипед. кажется ты подменяешь понятия. до создания графкл что делать?))

Artur Karapetov
это не велосипед. кажется ты подменяешь понятия. ...

Почему ж не велосипед? Я ещё ни разу не видел сложной фильтрации в параметрах url, которая бы не выглядела как какой-то костыль. Причём то, как эти параметры будут выглядеть, надо выдумывать. И каждый проявляет фантазию и выдумывает это по-своему... Я бы предпочёл готовое решение вместо этого)

Dmitriy Sviridov
Почему ж не велосипед? Я ещё ни разу не видел слож...

давай вернемся на 10 лет назад и выберем готовое решение

Artur Karapetov
давай вернемся на 10 лет назад и выберем готовое р...

Ну, слушай, так можно и на 20 лет назад вернуться и обнаружить, что Go не существует)

Dmitriy Sviridov
Ну, слушай, так можно и на 20 лет назад вернуться ...

передергиваешь ;-) по твоей логике, все кроме графкл — велосипед? и до его создания - все велосипеды.

Artur Karapetov
передергиваешь ;-) по твоей логике, все кроме гр...

Почему ж всё?) Я его так-то не люблю и вообще использую очень мало. Я пишу насчёт велосипедов конкретно в контексте тех случаев, когда разрабы придумывают сложную логику фильтрации в параметрах URL с какими-то разделителями, вложенностью и парсингом этого дела. Да, на мой взгляд, это не самое удачное решение. 10 лет назад я б может так и делал, т.к. выбирать особо не из чего. Сейчас для меня конкретно для этой задачи GraphQL выглядит более удачным выбором. P.s. правда вроде 10 лет назад был Open Data Protocol - и можно было б его выбрать, если так. Как бы там ни было - это тоже стандарт.

А4 Одноногое- Автор вопроса
Dmitriy Sviridov
Почему ж всё?) Я его так-то не люблю и вообще испо...

Но на начальных этапах намного быстрее и дешевле внедрить готовое, хоть и не настолько гибкое решение

Владимир Столяров
Зависит от того, насколько сложная фильтрация

фильтрация не бывает просто почти никогда если она правда нужна.

Dmitriy Sviridov
Почему ж всё?) Я его так-то не люблю и вообще испо...

не релевантен пример с ОДП, я такого даже не знаю ;)

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта