Задать вопрос
lamo4ok
@lamo4ok
Программист

Какие существуют лучшие практики для описания документации для Websocket?

Ситуация: есть потребность создать новый эндпоинт в существующем сервисе, который до этого работал только синхронно по HTTP. Новый эндпоинт будет:
  • принимать соединения от фронта;
  • получать от фронта потоково аудио;
  • передавать под капотом данные аудио в сервис расшифровки текста по gRPC;
  • потоково (чанками) возвращать текст;
  • как-то штатно или с той или иной ошибкой закрывать соединение.


Что хочется получить от документации:
  • некий стандарт без костылей;
  • описание процесса подключения и серверов, портов;
  • версионируемость эндпоинта (как это делается для вебсокетов?);
  • описание потокового ввода и вывода чанками;
  • описание кодов ошибок, успешных кодов.


Остановиться хотелось бы либо на OpenAPI, либо на AsyncAPI, так как они всем понятны. Но если стандартом является другие варианты, готов рассмотреть и их.

Какие смущают вопросы, как имеющего опыт в написании документации в формате OpenAPI / AsyncAPI:

  • Как версионировать?
  • Как корректно описывать поток?
  • Есть ли разделение например на установку соединения и описание что происходит внутри него?
  • В какую сторону смотреть при выборе пути эндпоинта, можно ли применять к ним те же правила, что привычны для REST / RPC или иных вариантов?
  • Вопрос задан
  • 253 просмотра
Подписаться 2 Простой 13 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Академия Eduson
    Python-разработчик
    9 месяцев
    Далее
  • Skillbox
    Профессия 1С-программист
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Ровно все те же самые, как и при описании любого другого API. Простота, удобство, читабельность, поддерживаемость. Можно спокойно использовать стандартный JSDoc или стандартную документацию вашего ЯП. Мне, например, нравится jsight.io за лёгкость и простоту. А вот сваггер и опен-апи — не нравятся, слишком переусложнено.
JSIGHT 0.3 

GET /cats/{id} 
  200 
    {
      "id"   : 123,   // {min: 0}
      "name" : "Tom"
    }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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