-
Notifications
You must be signed in to change notification settings - Fork 0
/
api.yml
135 lines (132 loc) · 2.95 KB
/
api.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
openapi: 3.0.0
info:
title: User Service API
version: 1.0.0
description: API for user registration, login, and profile management.
servers:
- url: http://localhost:8080
paths:
/register:
post:
summary: Register a new user
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/UserRegistration"
responses:
"200":
description: User registered successfully
content:
application/json:
schema:
$ref: "#/components/schemas/User"
"400":
description: Bad request
/login:
post:
summary: Login with phone number and password
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/UserLogin"
responses:
"200":
description: Login successful
content:
application/json:
schema:
$ref: "#/components/schemas/LoginResponse"
"400":
description: Bad request
/profile:
get:
summary: Get user profile
security:
- BearerAuth: []
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/User"
"403":
description: Forbidden
put:
summary: Update user profile
security:
- BearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/UserProfileUpdate"
responses:
"200":
description: Profile updated successfully
"403":
description: Forbidden
components:
schemas:
User:
type: object
properties:
id:
type: integer
phone_number:
type: string
full_name:
type: string
required:
- id
- phone_number
- full_name
UserRegistration:
type: object
properties:
phone_number:
type: string
full_name:
type: string
password:
type: string
required:
- phone_number
- full_name
- password
UserLogin:
type: object
properties:
phone_number:
type: string
password:
type: string
required:
- phone_number
- password
LoginResponse:
type: object
properties:
user_id:
type: integer
jwt_token:
type: string
required:
- user_id
- jwt_token
UserProfileUpdate:
type: object
properties:
phone_number:
type: string
minLength: 10
maxLength: 13
full_name:
type: string
minLength: 3
maxLength: 60