Sobes.tech
Back to questions
Middle
3

Как обеспечивали типизацию API-ответов? Использовали ли OpenAPI/Swagger или кодогенерацию?

Companies where asked
UserGate

Answer from AI

sobes.tech AI

Для обеспечения типизации API-ответов часто используют OpenAPI (Swagger) спецификации, которые описывают структуру запросов и ответов. На их основе можно сгенерировать типы для фронтенда с помощью инструментов, например, openapi-generator или swagger-codegen.

В TypeScript популярна библиотека openapi-typescript, которая генерирует типы из OpenAPI спецификации. Это позволяет строго типизировать данные, получаемые от API, и избежать ошибок при работе с ответами.

Пример использования openapi-typescript:

openapi-typescript api.yaml --output api-types.ts

В коде:

import { paths } from './api-types';

type UserResponse = paths['/users/{id}']['get']['responses']['200']['content']['application/json'];

function fetchUser(id: string): Promise<UserResponse> {
  return fetch(`/users/${id}`).then(res => res.json());
}

Таким образом, типы автоматически соответствуют спецификации API, что повышает надежность и удобство разработки.

Если OpenAPI не используется, можно вручную описывать типы или использовать кодогенерацию из GraphQL схем, если API построено на GraphQL.