sfu/design/openapi.yml

163 lines
No EOL
4.2 KiB
YAML

openapi: "3.0.3"
info:
title: sfu
version: 0.1.0
description: file upload server
servers:
- url: http://localhost:8080/api/v1/
description: local server
paths:
/files:
get:
summary: "list all uploaded files"
description: "list all uploaded files"
operationId: "list_files"
responses:
200:
description: "file list successful"
content:
text/plain:
schema:
type: string
format: html
500:
description: "internal server error"
content:
text/plain:
schema:
type: string
default: "internal server error"
post:
summary: "upload file"
description: "uploaded a file"
operationId: "upload_file"
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
description: "file to upload"
parameters:
- name: force
in: query
description: "force upload file which may overwrite an existing file with the same name"
required: false
schema:
type: boolean
default: false
responses:
201:
description: "file upload successful"
content:
text/plain:
schema:
type: array
items:
type: string
409:
description: "file already exists"
content:
text/plain:
schema:
type: string
default: "file already exists"
500:
description: "internal server error"
content:
text/plain:
schema:
type: string
default: "internal server error"
/files/{file_name}:
get:
summary: "get file"
description: "get file"
operationId: "get_file"
parameters:
- name: file_name
in: path
description: "file name"
required: true
schema:
type: string
responses:
200:
description: "file download successful"
content:
text/plain:
schema:
type: string
format: binary
404:
description: "file not found"
content:
text/plain:
schema:
type: string
default: "file not found"
500:
description: "internal server error"
content:
text/plain:
schema:
type: string
default: "internal server error"
delete:
summary: "delete file"
description: "delete file"
operationId: "delete_file"
parameters:
- name: file_name
in: path
description: "file name"
required: true
schema:
type: string
responses:
200:
description: "file delete successful"
content:
text/plain:
schema:
type: string
default: "file delete successful"
404:
description: "file not found"
content:
text/plain:
schema:
type: string
default: "file not found"
500:
description: "internal server error"
content:
text/plain:
schema:
type: string
default: "internal server error"
/health:
get:
summary: "health check"
description: "health check"
operationId: "health_check"
responses:
200:
description: "health check successful"
content:
text/plain:
schema:
type: string
default: "health check successful"
500:
description: "internal server error"
content:
text/plain:
schema:
type: string
default: "internal server error"