-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapi-docs.http
More file actions
148 lines (116 loc) · 3.17 KB
/
api-docs.http
File metadata and controls
148 lines (116 loc) · 3.17 KB
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
136
137
138
139
140
141
142
143
144
145
146
147
148
@host = http://localhost:3000
@contentType = application/json
@token = {{login.response.body.accessToken}}
@refreshToken = {{login.response.body.refreshToken}}
@documentId = {{createDocument.response.body.id}}
@userId = {{login.response.body.user.id}}
### ===========================================
### SYSTEM & HEALTH
### ===========================================
### Check System Health
GET {{host}}/health
### Get System Metrics
GET {{host}}/metrics
### Readiness Probe
GET {{host}}/ready
### Liveness Probe
GET {{host}}/live
### ===========================================
### AUTHENTICATION
### ===========================================
### Register New User
# @name register
POST {{host}}/api/auth/register
Content-Type: {{contentType}}
{
"email": "test@example.com",
"password": "password123",
"name": "Test User"
}
### Login
# @name login
POST {{host}}/api/auth/login
Content-Type: {{contentType}}
{
"email": "test@example.com",
"password": "password123"
}
### Refresh Token
POST {{host}}/api/auth/refresh
Content-Type: {{contentType}}
{
"refreshToken": "{{refreshToken}}"
}
### Logout
POST {{host}}/api/auth/logout
Authorization: Bearer {{token}}
Content-Type: {{contentType}}
{
"refreshToken": "{{refreshToken}}"
}
### ===========================================
### DOCUMENTS
### ===========================================
### Create Document
# @name createDocument
POST {{host}}/api/documents
Authorization: Bearer {{token}}
Content-Type: {{contentType}}
{
"title": "My Project Plan",
"content": "Initial content"
}
### List My Documents (Owned)
GET {{host}}/api/documents
Authorization: Bearer {{token}}
### List All Documents (Owned + Shared)
GET {{host}}/api/documents/all
Authorization: Bearer {{token}}
### Get Document by ID
GET {{host}}/api/documents/{{documentId}}
Authorization: Bearer {{token}}
### Update Document
PUT {{host}}/api/documents/{{documentId}}
Authorization: Bearer {{token}}
Content-Type: {{contentType}}
{
"title": "Updated Project Plan",
"content": "Updated content"
}
### Delete Document
DELETE {{host}}/api/documents/{{documentId}}
Authorization: Bearer {{token}}
### ===========================================
### COLLABORATION
### ===========================================
### Set Document Visibility (Public/Private)
PUT {{host}}/api/documents/{{documentId}}/visibility
Authorization: Bearer {{token}}
Content-Type: {{contentType}}
{
"isPublic": true
}
### Add Collaborator
# Note: You need another registered user's email
POST {{host}}/api/documents/{{documentId}}/collaborators
Authorization: Bearer {{token}}
Content-Type: {{contentType}}
{
"email": "colleague@example.com",
"role": "editor"
}
### List Collaborators
GET {{host}}/api/documents/{{documentId}}/collaborators
Authorization: Bearer {{token}}
### Update Collaborator Role
# Replace :userId with actual user ID from the list response
PUT {{host}}/api/documents/{{documentId}}/collaborators/:userId
Authorization: Bearer {{token}}
Content-Type: {{contentType}}
{
"role": "viewer"
}
### Remove Collaborator
# Replace :userId with actual user ID
DELETE {{host}}/api/documents/{{documentId}}/collaborators/:userId
Authorization: Bearer {{token}}