«1. Введение
В этом руководстве мы увидим, как объявлять даты в файле OpenAPI, в данном случае реализованном с помощью Swagger. Это позволит нам стандартизированно управлять датами ввода и вывода при вызове внешних API.
2. Swagger против OAS
Swagger — это набор инструментов, реализующих спецификацию OpenAPI (OAS), независимый от языка интерфейс для документирования RESTful API. Это позволяет нам понять возможности любого сервиса без доступа к исходному коду.
Для реализации этого в нашем проекте будет файл, обычно YAML или JSON, описывающий API с использованием OAS. Затем мы будем использовать инструменты Swagger для:
-
редактирования нашей спецификации через браузер (редактор Swagger) автоматического создания клиентских библиотек API (Swagger Codegen) отображения автоматически сгенерированной документации (пользовательский интерфейс Swagger)
Пример файла OpenAPI содержит различные разделы, но мы сосредоточимся на определении модели.
3. Определение даты
Давайте определим сущность пользователя, используя OAS:
components:
User:
type: "object"
properties:
id:
type: integer
format: int64
createdAt:
type: string
format: date
description: Creation date
example: "2021-01-30"
username:
type: string
Чтобы определить дату, мы используем объект с:
-
поле типа равно строке поле формата, которое указывает, как формируется дата
В этом случае мы использовали формат даты для описания даты createdAt. Этот формат описывает даты с использованием формата полной даты ISO 8601.
4. Определение даты-времени
Кроме того, если мы также хотим указать время, мы будем использовать дату-время в качестве формата. Давайте посмотрим на пример:
createdAt:
type: string
format: date-time
description: Creation date and time
example: "2021-01-30T08:30:00Z"
В этом случае мы описываем дату и время, используя полный формат ISO 8601.
5. Поле шаблона
С помощью OAS мы можем описывать даты и в других форматах. Для этого воспользуемся полем шаблона:
customDate:
type: string
pattern: '^\d{4}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])$'
description: Custom date
example: "20210130"
Понятно, что это менее читаемый метод, но зато самый мощный. Действительно, мы можем использовать любое регулярное выражение в этом поле.
6. Заключение
В этой статье мы рассмотрели, как объявлять даты с помощью OpenAPI. Мы можем использовать стандартные форматы, предлагаемые OpenAPI, а также пользовательские шаблоны в соответствии с нашими потребностями. Как всегда, исходный код примера, который мы использовали, доступен на GitHub.