first commit
commit
32b154796f
|
|
@ -0,0 +1,117 @@
|
||||||
|
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
|
||||||
|
|
||||||
|
ConfigMetaDTO:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
description: Configuration file 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:
|
||||||
|
- fileName
|
||||||
|
properties:
|
||||||
|
fileName:
|
||||||
|
type: string
|
||||||
|
description: Configuration file name
|
||||||
|
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