recreate project
This commit is contained in:
@@ -0,0 +1,145 @@
|
||||
openapi: 3.0.3
|
||||
info:
|
||||
title: Authentication API
|
||||
version: 1.0.0
|
||||
servers:
|
||||
- url: https://your-domain.com/api/v1
|
||||
description: Production
|
||||
- url: http://localhost:8080/api/v1
|
||||
description: Local
|
||||
tags:
|
||||
- name: Authentication
|
||||
paths:
|
||||
/login:
|
||||
post:
|
||||
tags: [Authentication]
|
||||
summary: Obtain a JWT token for a user
|
||||
description: Authenticate with valid credentials to receive a JWT token and user summary.
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required: [email, password]
|
||||
properties:
|
||||
email:
|
||||
type: string
|
||||
format: email
|
||||
example: admin@example.com
|
||||
password:
|
||||
type: string
|
||||
minLength: 8
|
||||
example: 12345678
|
||||
responses:
|
||||
"200":
|
||||
description: Login successful
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/LoginSuccess'
|
||||
"400":
|
||||
description: Missing email or password
|
||||
"401":
|
||||
description: Invalid credentials
|
||||
"403":
|
||||
description: Account suspended
|
||||
"429":
|
||||
description: Too many attempts from this IP address
|
||||
security: []
|
||||
/register:
|
||||
post:
|
||||
tags: [Authentication]
|
||||
summary: Create a new user account (parent registration)
|
||||
description: Open registration endpoint that creates a parent account and returns the created profile.
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/RegisterRequest'
|
||||
responses:
|
||||
"201":
|
||||
description: User registered successfully
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/RegisterSuccess'
|
||||
"400":
|
||||
description: Invalid request data
|
||||
"422":
|
||||
description: Validation failure (e.g., email already registered)
|
||||
"500":
|
||||
description: Server error while creating user
|
||||
security: []
|
||||
components:
|
||||
schemas:
|
||||
LoginSuccess:
|
||||
type: object
|
||||
properties:
|
||||
status:
|
||||
type: boolean
|
||||
example: true
|
||||
token:
|
||||
type: string
|
||||
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
|
||||
user:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
example: 1
|
||||
name:
|
||||
type: string
|
||||
example: Admin User
|
||||
roles:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: boolean
|
||||
example:
|
||||
admin: true
|
||||
RegisterRequest:
|
||||
type: object
|
||||
required: [firstname, lastname, email, password, captcha_answer]
|
||||
properties:
|
||||
firstname:
|
||||
type: string
|
||||
example: Jane
|
||||
lastname:
|
||||
type: string
|
||||
example: Doe
|
||||
email:
|
||||
type: string
|
||||
format: email
|
||||
example: parent@example.com
|
||||
password:
|
||||
type: string
|
||||
minLength: 8
|
||||
example: StrongPass123
|
||||
phone:
|
||||
type: string
|
||||
nullable: true
|
||||
example: "+1-410-555-1234"
|
||||
captcha_answer:
|
||||
type: string
|
||||
example: "5"
|
||||
RegisterSuccess:
|
||||
type: object
|
||||
properties:
|
||||
status:
|
||||
type: boolean
|
||||
example: true
|
||||
message:
|
||||
type: string
|
||||
example: Registration successful. Please verify your email.
|
||||
data:
|
||||
type: object
|
||||
properties:
|
||||
user:
|
||||
type: object
|
||||
properties:
|
||||
id: { type: integer, example: 101 }
|
||||
firstname: { type: string, example: "Jane" }
|
||||
lastname: { type: string, example: "Doe" }
|
||||
email: { type: string, format: email, example: "parent@example.com" }
|
||||
school_id: { type: string, example: "SCH-0001" }
|
||||
Reference in New Issue
Block a user