Size: a a a

Боль Тимлида

2021 November 18

SG

Sergey Golikov in Боль Тимлида
а, понял, типа закрыть сервис как черный ящик за неким sdk. Ну дизайн api маппится на sdk 1 к 1. Значит надо будет писать документашку на этот sdk и решать все те же проблемы дизайна.
источник

AB

Aleksandr Bespalov in Боль Тимлида
Но в пяти соседних кусаках для похожих методов хочешь же похоже поведение? Ну там ретрай, например?
источник

AB

Aleksandr Bespalov in Боль Тимлида
Т.е. не иметь дело с бессмысленным разнообразием
источник

VF

Victor Fabrichenko in Боль Тимлида
не то что бы надо, его и так почти всегда закрывают, вопрос сколькими способами
источник

PD

Phil Delgyado in Боль Тимлида
Неа. Одинаковые.
API - оно про то, как мы смотрим на домен, какие в нем есть события, как его делим на агрегаты.
Какие есть базовые примитивы событий, какие особенности.

Да, там есть в том числе и вопросы "как обрабатывать ошибки", но это мелочь, как ни странно.
И не требует особых ресурсов, хотя иногда библиотечная поддержка и нужна.
источник

VF

Victor Fabrichenko in Боль Тимлида
КОнечно, поэтому над апи почти всегда есть какая-то обертка
источник

PD

Phil Delgyado in Боль Тимлида
А вот аутентификация уже сильно зависит от клиента. Для мобилки, веба и внутри бэка - она разная.
Как и авторизация (
источник

VF

Victor Fabrichenko in Боль Тимлида
Ну ты можешь для пользователя дать возможность сделать while(req.next()), а внутри можешь сделать что хочешь
источник

SG

Sergey Golikov in Боль Тимлида
логично же, если разработчики будут общаться на одном языке при обсуждении контрактов. Т.е. нужен какой-то idl, например openapi или protobuf.
источник

VF

Victor Fabrichenko in Боль Тимлида
ну и ее я тоже как клиент не хочу делать, хочу 2 параметра отправить и потом чтобы у меня все работало
источник

PD

Phil Delgyado in Боль Тимлида
Реально, из опыта, общим для всех видов клиентов (внутренние сервисы, внешние сервисы, веб, мобилка) остается только "при http 500 retry не делаем, а при 503 - делаем" и подобные правила.
Все остальное - увы, специфично.
источник

PD

Phil Delgyado in Боль Тимлида
А не бывает так, увы (
Аутентификацию нельзя свести к "отправить два параметра".
источник

VF

Victor Fabrichenko in Боль Тимлида
Разработчик клиента хочет пример кода, который он скопипастит и из этого кода получит данные или их отправит. Как оно там внутри, его вообще не интересует
источник

SG

Sergey Golikov in Боль Тимлида
пример кода != документация
источник

VF

Victor Fabrichenko in Боль Тимлида
ну ты же как пользователь набираешь логин пароль и пользуешься сервисом, вот погромист тоже так хочет. В худшем случае там будет какой-то токен, которые нужно будет куда-то прокинуть
источник

VF

Victor Fabrichenko in Боль Тимлида
да кто читает спеки на АПИ сервера, если есть примеры, которые делают то что надо? Хачем? читать приходится только тогда, когда нет готового сценария использования
источник

VF

Victor Fabrichenko in Боль Тимлида
вот у гугла есть куча возможностей в апи, но попробуй их заиспользуй без библиотеки, это супер непросто, но они еще и не все в библиотеки прокибывают
источник

VF

Victor Fabrichenko in Боль Тимлида
приходится читать описание апи только когда сделать что-то надо, а библиоткера не поддерживает, пирчем совершенно непонятно почему
источник

SG

Sergey Golikov in Боль Тимлида
намного проще же заглянуть в swagger песочницу, где все эндпоинты структурированы, чем разбираться в коде какой-то локальной клиенской библиотеки
источник

MG

Maxim Golubev in Боль Тимлида
в свагере же даже дают клиента сгенеренного если надо - так что это не пример
источник