Files
caldav-simple-restapi/openapi.yaml

633 lines
18 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
openapi: "3.1.0"
info:
title: "CalDav-simple-RESTAPI"
description: "Примитивный REST API над CalDav потому что он старый и неудобный, а fancy cool modern REST API лучше"
version: "1.0.0"
servers:
- url: "http://localhost:8080"
description: "Local"
paths:
/calendar/{calendarId}/events:
get:
description: "Получение всех событий с возможностью фильтрации по дате"
parameters:
- name: "Authorization"
in: "header"
required: false
schema:
type: "string"
- name: "calendarId"
in: "path"
required: true
schema:
type: "string"
- name: "startDate"
in: "query"
required: false
description: "Начальная дата для фильтрации событий (ISO формат: YYYY-MM-DDTHH:mm:ss)"
schema:
type: "string"
- name: "endDate"
in: "query"
required: false
description: "Конечная дата для фильтрации событий (ISO формат: YYYY-MM-DDTHH:mm:ss)"
schema:
type: "string"
responses:
"400":
description: "Bad Request"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "Заголовок CAL_ID обязателен"
"200":
description: "OK"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_List<? extends EventResponse>"
examples:
Example#1:
description: ""
value:
success: true
data: "null"
message: "null"
"500":
description: "Internal Server Error"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
Example#2:
description: ""
value:
success: false
data: "null"
message: "null"
post:
description: "Создание нового события"
parameters:
- name: "Authorization"
in: "header"
required: false
schema:
type: "string"
- name: "calendarId"
in: "path"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateEventRequest"
required: true
responses:
"400":
description: "Bad Request"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
Example#2:
description: ""
value:
success: false
data: "null"
message: "Заголовок CAL_ID обязателен"
"201":
description: "Created"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_EventResponse"
examples:
Example#1:
description: ""
value:
success: true
data: "null"
message: "null"
"401":
description: "Unauthorized"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
"403":
description: "Forbidden"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
"404":
description: "Not Found"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
"409":
description: "Conflict"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
"500":
description: "Internal Server Error"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
/calendar/{calendarId}/events/{uid}:
delete:
description: "Удаление события"
parameters:
- name: "uid"
in: "path"
required: true
schema:
type: "string"
- name: "Authorization"
in: "header"
required: false
schema:
type: "string"
- name: "calendarId"
in: "path"
required: true
schema:
type: "string"
responses:
"400":
description: "Bad Request"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
Example#2:
description: ""
value:
success: false
data: "null"
message: "Заголовок CAL_ID обязателен"
Example#3:
description: ""
value:
success: false
data: "null"
message: "UID события не указан"
"200":
description: "OK"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: true
data: "null"
message: "Событие успешно удалено"
"401":
description: "Unauthorized"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
"403":
description: "Forbidden"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
"404":
description: "Not Found"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
"500":
description: "Internal Server Error"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
get:
description: "Получение события по UID"
parameters:
- name: "uid"
in: "path"
required: true
schema:
type: "string"
- name: "Authorization"
in: "header"
required: false
schema:
type: "string"
- name: "calendarId"
in: "path"
required: true
schema:
type: "string"
responses:
"400":
description: "Bad Request"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "Заголовок CAL_ID обязателен"
Example#2:
description: ""
value:
success: false
data: "null"
message: "UID события не указан"
"200":
description: "OK"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_EventResponse"
examples:
Example#1:
description: ""
value:
success: true
data: "null"
message: "null"
"404":
description: "Not Found"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
Example#2:
description: ""
value:
success: false
data: "null"
message: "Событие не найдено"
"401":
description: "Unauthorized"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
"403":
description: "Forbidden"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
"500":
description: "Internal Server Error"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
Example#2:
description: ""
value:
success: false
data: "null"
message: "null"
put:
description: "Обновление события"
parameters:
- name: "uid"
in: "path"
required: true
schema:
type: "string"
- name: "Authorization"
in: "header"
required: false
schema:
type: "string"
- name: "calendarId"
in: "path"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateEventRequest"
required: true
responses:
"400":
description: "Bad Request"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
Example#2:
description: ""
value:
success: false
data: "null"
message: "Заголовок CAL_ID обязателен"
Example#3:
description: ""
value:
success: false
data: "null"
message: "UID события не указан"
"200":
description: "OK"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_EventResponse"
examples:
Example#1:
description: ""
value:
success: true
data: "null"
message: "null"
"401":
description: "Unauthorized"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
"403":
description: "Forbidden"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
"404":
description: "Not Found"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
"412":
description: "Precondition Failed"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
"500":
description: "Internal Server Error"
content:
'*/*':
schema:
$ref: "#/components/schemas/ApiResponse_String"
examples:
Example#1:
description: ""
value:
success: false
data: "null"
message: "null"
components:
schemas:
ApiResponse:
type: "object"
properties:
success:
type: "boolean"
message:
type: "string"
nullable: true
required:
- "success"
ApiResponse_String:
type: "object"
properties:
success:
type: "boolean"
data:
type: "string"
message:
type: "string"
EventResponse:
type: "object"
properties:
uid:
type: "string"
summary:
type: "string"
description:
type: "string"
nullable: true
startDateTime:
type: "string"
endDateTime:
type: "string"
location:
type: "string"
nullable: true
required:
- "uid"
- "summary"
- "startDateTime"
- "endDateTime"
ApiResponse_List<? extends EventResponse>:
type: "object"
properties:
success:
type: "boolean"
data:
type: "array"
items:
$ref: "#/components/schemas/EventResponse"
message:
type: "string"
CreateEventRequest:
type: "object"
properties:
summary:
type: "string"
description:
type: "string"
nullable: true
startDateTime:
type: "string"
endDateTime:
type: "string"
location:
type: "string"
nullable: true
required:
- "summary"
- "startDateTime"
- "endDateTime"
ApiResponse_EventResponse:
type: "object"
properties:
success:
type: "boolean"
data:
$ref: "#/components/schemas/EventResponse"
message:
type: "string"