first commit
commit
9e139fbb4d
|
|
@ -0,0 +1,127 @@
|
|||
openapi: 3.0.4
|
||||
info:
|
||||
title: VPN Core API
|
||||
version: 1.0.0
|
||||
|
||||
servers:
|
||||
- url: https://api.yourdomain.com/v1
|
||||
|
||||
components:
|
||||
schemas:
|
||||
|
||||
UserCreateRequestDTO:
|
||||
type: object
|
||||
required:
|
||||
- username
|
||||
properties:
|
||||
username:
|
||||
type: string
|
||||
description: Unique username
|
||||
|
||||
UserResponseDTO:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
description: Internal user identifier
|
||||
username:
|
||||
type: string
|
||||
|
||||
ConfigMetaDTO:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
description: Configuration file identifier
|
||||
userId:
|
||||
type: string
|
||||
description: Owner user identifier
|
||||
name:
|
||||
type: string
|
||||
description: Configuration name
|
||||
|
||||
paths:
|
||||
|
||||
/users:
|
||||
post:
|
||||
summary: Create user
|
||||
description: |
|
||||
Creates a user on first request.
|
||||
If a user with this username already exists —
|
||||
returns the existing user.
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/UserCreateRequestDTO"
|
||||
responses:
|
||||
"201":
|
||||
description: User created
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/UserResponseDTO"
|
||||
"200":
|
||||
description: User already exists
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/UserResponseDTO"
|
||||
"400":
|
||||
description: Bad request
|
||||
|
||||
/configs:
|
||||
post:
|
||||
summary: Upload binary configuration file
|
||||
description: |
|
||||
Uploads a binary configuration file
|
||||
associated with a user.
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
multipart/form-data:
|
||||
schema:
|
||||
type: object
|
||||
required:
|
||||
- file
|
||||
- fileName
|
||||
properties:
|
||||
fileName:
|
||||
type: string
|
||||
description: Configuration file name
|
||||
file:
|
||||
type: string
|
||||
format: binary
|
||||
description: Binary contents of the file
|
||||
responses:
|
||||
"201":
|
||||
description: File successfully uploaded
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/ConfigMetaDTO"
|
||||
"400":
|
||||
description: Invalid input
|
||||
|
||||
get:
|
||||
summary: Get user configuration files
|
||||
description: Returns a list of all configuration files for the given user.
|
||||
parameters:
|
||||
- in: query
|
||||
name: userId
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
description: User identifier
|
||||
responses:
|
||||
"200":
|
||||
description: List of configuration files
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/components/schemas/ConfigMetaDTO"
|
||||
"400":
|
||||
description: Bad request
|
||||
Loading…
Reference in New Issue