Files
caldav-simple-restapi/openapi.yaml
vladislav a49177b3d0 del: Удалены API_DOCS.md ввиду добавления openapi.yaml спецификации
feat: CAL_ID передаётся через url параметр вместо заголовка
2025-07-18 03:36:07 +03:00

621 lines
18 KiB
YAML
Raw Permalink 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"
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"