The Space Web
Board API
Post-API
Curl request
$ curl 'http://localhost:8080/board?_csrf=tPiP4VynV1uIU5ilfNCs4yUmZKHZoNpPoZ2_V-eo77AHkt_9hs67gz2fMTqlZ6zBSf2Y0RFCSZnow-pimKuNMtLO3Ydl9rub' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '{
"title" : "test1",
"content" : "content1",
"fileNames" : [ ],
"categoryId" : 1
}'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1
1
field |
Description |
return value |
Board Number (bno) |
Request fields
Field |
Type |
Description |
|
|
Title. |
|
|
Content. |
|
|
Name of attached files. |
|
|
Category Id. |
Read-API
Curl request
$ curl 'http://localhost:8080/board/1' -i -X GET \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
Number of Board. |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 685
{
"bno" : 1,
"title" : "test",
"content" : "content",
"writer" : "tester",
"writerUuid" : "testerUUID",
"createDate" : "2025-07-08T20:09:06.190421",
"modDate" : "2025-07-08T20:09:06.190421",
"viewCount" : 1,
"vote" : 0,
"rCount" : 0,
"fileNames" : [ ],
"communityInfo" : {
"id" : 1,
"name" : "test",
"createDate" : "2025-07-08T20:09:06.186415",
"modDate" : "2025-07-08T20:09:06.186415",
"description" : "test"
},
"categoryInfo" : {
"id" : 1,
"name" : "test",
"type" : "test",
"createDate" : "2025-07-08T20:09:06.189422",
"modDate" : "2025-07-08T20:09:06.189422",
"communityId" : 1
}
}
Response fields
Field |
Type |
Description |
|
|
Number of Board. |
|
|
Title. |
|
|
The community information to which the post belongs. |
|
|
The category information to which the post belongs. |
|
|
Content. |
|
|
Writer ID |
|
|
Writer UUID |
|
|
Create date. |
|
|
Modified date. |
|
|
View count / def = 0. |
|
|
Vote count / def = 0. |
|
|
Reply count / def = 0. |
|
|
Name of attached files. |
List-API
Curl request
$ curl 'http://localhost:8080/board/list?page=1&size=10&type=t&keyword=1&path=test&categoryId=1' -i -X GET \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Query parameters
Parameter | Description |
---|---|
|
Page number to display in the full query results. |
|
Number of rows to display search results. |
|
Search condition identifier. |
|
Search Keyword |
|
The community to be searched for. |
|
CategoryId of Search Destinations. |
Response fields
Field |
Type |
Description |
|
|
Page number to display in the full query results. |
|
|
Number of rows to display search results. |
|
|
The total number of rows of search results. |
|
|
1 if search results exist, 0 otherwise. |
|
|
Last page of total search results, total / size |
|
|
True if there are more than 2 pages currently being viewed. |
|
|
True if page is less than end. |
|
|
Search results row data. |
Modify-API
Curl request
$ curl 'http://localhost:8080/board?_csrf=An4MZjjlSfgS3knn_Z-vVsVRu2CA1ChFyIm_n-bIreV7wpqtZkk1Vg-BLcs_6H6Bm7KbM6Y1lli44x9o_LqKr9X6zt0ao67M' -i -X PATCH \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '{
"bno" : 1,
"title" : "modify",
"content" : "modify",
"writer" : "testerUser",
"categoryId" : 2,
"fileNames" : [ ]
}'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Request fields
Field |
Type |
Description |
|
|
Number of Board. |
|
|
Title. |
|
|
Content. |
|
|
Writer. |
|
|
Category Id. |
|
|
Name of attached files. |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Delete-API
Curl request
$ curl 'http://localhost:8080/board/1' -i -X DELETE \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '_csrf=qCViMaOhqMBeFahC6rlJJgAd7Qk4nfVXfIHJK9z-qX3y52SCnRZQU5rEmflzcMoj2JR9FWIqwGha-cJ6SuWtT7jKmhiU3lG1'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
Number of Board. |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Delete with Admin-API
Curl request
$ curl 'http://localhost:8080/board/1/admin?name=test' -i -X DELETE \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '_csrf=dpienK6YeFSoBqcmwNpKw2_hL0CRTtADcn1Dvhy_hDjr75x5QqCqqpv-HGGFNMQeofd-9w2FAiLyLbMuSk9xjivZ4VzZ3Kwd'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
Number of Board. |
Query parameters
Parameter | Description |
---|---|
|
The community name of the post. |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Category API
List-API
Curl request
$ curl 'http://localhost:8080/category/list?communityId=1' -i -X GET \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Response fields
Field |
Type |
Description |
|
|
Category ID |
|
|
Category Name |
|
|
Category Type |
|
|
The community ID to which that category belongs. |
Create with Admin-API
Curl request
$ curl 'http://localhost:8080/category/admin?_csrf=8qA6oE52Wz16v5NxUWH1d1lERolPbfXscDwXkrpfUNV9SxJ0l8MCkntEawlXjfVJY0zBTm9xa-t2D8HBFAl28ItsaeZFeiVE' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '{
"name" : "test",
"type" : "test",
"communityId" : 1
}'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Request fields
Field |
Type |
Description |
|
|
Category name |
|
|
Category Type |
|
|
The community ID to which that category will belongs. |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Delete with Admin-API
Curl request
$ curl 'http://localhost:8080/category/1/admin?communityName=test' -i -X DELETE \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '_csrf=lByuUNh0U4AdrfoMpiwvR0qkO_GlV96btjMXi9ppQ007ElVCrX6XMegVYuMwncI_kwEbJC6cFsjEM-u2jlYlub9ZJixdIzAk'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
Category ID what to delete |
Query parameters
Parameter | Description |
---|---|
|
The community name to which that category belongs. |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Community API
Get-API
Curl request
$ curl 'http://localhost:8080/community/1' -i -X GET \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
Community Id to search |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 156
{
"id" : 1,
"name" : "test",
"createDate" : "2025-07-08T20:09:07.722494",
"modDate" : "2025-07-08T20:09:07.722494",
"description" : "test"
}
Response fields
Field |
Type |
Description |
|
|
Community ID |
|
|
Community name |
|
|
Created date |
|
|
Modified date |
|
|
Community description |
List-API
Curl request
$ curl 'http://localhost:8080/community/list?page=0&size=0&type=n&keyword=3' -i -X GET \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Query parameters
Parameter | Description |
---|---|
|
0 |
|
0 |
|
n / Use n to distinguish it from other list lookup APIs. |
|
Keywords to search for |
Response fields
Field |
Type |
Description |
|
|
1 / This is fixed value because it will show the list all on one page. |
|
|
1000000 / This is fixed value because it will show the list all on one page. It may be different if we introduce a community cap or group-specific categorising in the future. |
|
|
Total number of search hits. |
|
|
1 / This is fixed value because it will show the list all on one page. |
|
|
1 / This is fixed value because it will show the list all on one page. |
|
|
false / This is fixed value because it will show the list all on one page. |
|
|
false / This is fixed value because it will show the list all on one page. |
|
|
List of rows of search results. |
Create-API
Curl request
$ curl 'http://localhost:8080/community?nameCheck=true' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '{
"communityName" : "test",
"description" : "test"
}'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Request fields
Field |
Type |
Description |
|
|
Name of community |
|
|
Description of community |
Query parameters
Parameter | Description |
---|---|
|
result of name check |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 156
{
"id" : 1,
"name" : "test",
"createDate" : "2025-07-08T20:09:08.299535",
"modDate" : "2025-07-08T20:09:08.299535",
"description" : "test"
}
Check-API
Curl request
$ curl 'http://localhost:8080/community/nameCheck?communityName=Test%20Community%201' -i -X GET \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Query parameters
Parameter | Description |
---|---|
|
Name of community to check |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 4
true
Delete-API
Curl request
$ curl 'http://localhost:8080/community/1' -i -X DELETE \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '_csrf=sZMiWzNHnKJM9__fqDPueycWyhrsh3YbDRel63zsNjU0xj4Y1aZBaVZ3_5dhwc3mmx7aSxcl53uJ5UA2P3WQ3kreDlQF8w4g'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
CommunityID to delete |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
AdminGetList-API
Curl request
$ curl 'http://localhost:8080/community/list/admin' -i -X GET \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 14
[ 1, 2, 3, 4 ]
Response fields
Field |
Type |
Description |
|
|
List of CommunityID what performer has admin role. |
Modify-API
Curl request
$ curl 'http://localhost:8080/community/1/modify?_csrf=2t3Pah57eISOJOx6_nE944iQsYhpAiydAQULtgfvGLseKoGFub_6XScaTLGjFd5OyVwJgeqlnLFROkmwMGFq0zeOIYkmTOS3' -i -X PATCH \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '{
"description" : "modify"
}'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Request fields
Field |
Type |
Description |
|
|
Description what will change |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
File API
Upload-API
Curl request
$ curl 'http://localhost:8080/file' -i -X POST \
-H 'Content-Type: multipart/form-data;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
-H 'X-CSRF-TOKEN: 2pQuKPlvmwPqMZ6nhdJPCjBMMXiKxv3_OZ2GX-kcpwjp8EuYu6YZEcpdrmXHBa_G4_97bwN1HBm598XSDf7gaN0rwj2Nwi3-' \
--cookie 'JSESSIONID=example-session-id' \
-F 'fileList=@test.png;type=image/png' \
-F 'fileList=@test.txt;type=text/txt'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Request parts
Part | Description |
---|---|
|
File list to upload |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 193
[ {
"fileId" : "1d9b713e",
"fileName" : "test.png",
"imageChk" : true,
"ord" : 0
}, {
"fileId" : "1cd30751",
"fileName" : "test.txt",
"imageChk" : false,
"ord" : 0
} ]
Response fields
Field |
Type |
Description |
|
|
Random generation identifier |
|
|
File name to will upload |
|
|
Whether the file is an image. |
|
|
The number of files in that post when it is posted to a board. |
Get-API
Curl request
$ curl 'http://localhost:8080/file/fd148be9/test.png' -i -X GET \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
File ID to get |
|
File name to get |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: image/png;charset=UTF-8
Content-Disposition: attachment; filename="test.png"
Accept-Ranges: bytes
Content-Length: 5
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
test!
Delete-API
Curl request
$ curl 'http://localhost:8080/file/10a870d4/test.png' -i -X DELETE \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '_csrf=FoljkYFFkHrgOtu9AXKJVsb2Uzh7Urkli4YJyt5p6tdTBvwvIbxT8LQh8h_NAu6JZV-9Yv6UfgFDa9sIvr9q8u5R3LU3NM4e'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
File ID to get |
|
File name to get |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Reply API
Register-APi
Curl request
$ curl 'http://localhost:8080/board/1/reply?_csrf=ysN5vfEZHh3O7qFDnzhAGVlbFfHRwOc29kJmjwRgQxhd051Z8vZBhMZ_Kyzj3JAh-hV0KD1sOJO09tAbxnBe62JZJSBosK9p' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '{
"replyContent" : "test",
"tag" : "",
"parentRno" : 0,
"tagRno" : 0
}'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
Board Number |
Request fields
Field |
Type |
Description |
|
|
Content of reply |
|
|
The writer name of the tagged reply. |
|
|
Parent comment number for this comment. |
|
|
The number of comments that this comment is tagging. |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
List-API
Curl request
$ curl 'http://localhost:8080/board/1/reply' -i -X GET \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
Board Number |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1342
{
"page" : 1,
"size" : 1000000,
"total" : 4,
"start" : 1,
"end" : 1,
"prev" : false,
"next" : false,
"dtoList" : [ {
"rno" : 1,
"replyContent" : "test1",
"replyWriter" : "tester",
"replyWriterUuid" : "testerUUID",
"tag" : "",
"replyDate" : "2025-07-08T20:09:13.958402",
"childCount" : 0,
"taggedCount" : 0,
"parentRno" : 0,
"tagRno" : 0,
"vote" : 0
}, {
"rno" : 2,
"replyContent" : "test2",
"replyWriter" : "tester",
"replyWriterUuid" : "testerUUID",
"tag" : "testerUser",
"replyDate" : "2025-07-08T20:09:13.963387",
"childCount" : 0,
"taggedCount" : 0,
"parentRno" : 0,
"tagRno" : 1,
"vote" : 0
}, {
"rno" : 3,
"replyContent" : "test2",
"replyWriter" : "tester",
"replyWriterUuid" : "testerUUID",
"tag" : "",
"replyDate" : "2025-07-08T20:09:13.966382",
"childCount" : 0,
"taggedCount" : 0,
"parentRno" : 0,
"tagRno" : 0,
"vote" : 0
}, {
"rno" : 4,
"replyContent" : "test3",
"replyWriter" : "tester",
"replyWriterUuid" : "testerUUID",
"tag" : "testerUser",
"replyDate" : "2025-07-08T20:09:13.968596",
"childCount" : 0,
"taggedCount" : 0,
"parentRno" : 0,
"tagRno" : 3,
"vote" : 0
} ]
}
Response fields
Field |
Type |
Description |
|
|
Total number of reply on this board |
|
|
Reply Number |
|
|
Content of reply |
|
|
Writer name of reply |
|
|
Writer UUID of reply |
|
|
The writer name of the tagged reply. |
|
|
Date of reply registered |
|
|
Count of nested reply |
|
|
Parent comment number for this comment. |
|
|
Count of tagged. |
|
|
Count of like |
Delete-API
Curl request
$ curl 'http://localhost:8080/board/1/reply/1' -i -X DELETE \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '_csrf=3WnzbMJwRbumn7LS_iB4js38o44d-pdpte1CcvSmD6uKaluX6g-WWqNJdY6Lp4Lqmg1Mv__PjuwozqVEgI4hRpGfPZ_pD2qi'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
Board Number |
|
Reply Number to delete |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Like API
Like-API
Curl request
$ curl 'http://localhost:8080/like?_csrf=tkVOxM5VQmhCR0kuJm6CU-t2Ccm-lRAw-LQFYrRLLKsxumio13Z28Ppld1hvIS0ZRUO2NthFJPCGoyIdmYwzW4IqFMpQiwud' -i -X PUT \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '{
"bno" : 1,
"rno" : 0
}'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Request fields
Field |
Type |
Description |
|
|
If perform target is Post, its number. |
|
|
If perform target is Reply, its number. |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1
1
Field |
Type |
Description |
Body |
int |
If performer has no history of like to target post or reply, 1. |
User API
Register-API
Curl request
$ curl 'http://localhost:8080/user?checkid=true' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-d '{
"id" : "AAAAAA",
"name" : "AAAAAA",
"email" : "AAAA@AAAA.AAA",
"password" : "password",
"introduce" : "Nice to meet you",
"signature" : "\uD83D\uDE0A"
}'
Request fields
Field |
Type |
Description |
|
|
ID to register |
|
|
Nickname to register |
|
|
Email to register |
|
|
password to register |
|
|
introduce |
|
|
An emoji to express oneself |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Check-API
Curl request
$ curl 'http://localhost:8080/user/checkid?id=testerID' -i -X GET
Query parameters
Parameter | Description |
---|---|
|
The ID to check. |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 4
true
Field |
Type |
Description |
Body |
boolean |
If that ID already exists, false, otherwise true. |
GetUserInfo-API
Curl request
$ curl 'http://localhost:8080/user/info' -i -X GET
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 81
{
"uuid" : "testerUUID",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
}
Response fields
Field |
Type |
Description |
|
|
UUID of login user |
|
|
Nickname of login user |
|
|
Roles(in community) of login user |
GetMyPage-API
Curl request
$ curl 'http://localhost:8080/user/testerUUID/mypage' -i -X GET \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
The UUID of the target to search. |
Request headers
Name | Description |
---|---|
|
CSRF Token |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 167
{
"signature" : "\uD83D\uDE0A",
"name" : "tester",
"uuid" : "testerUUID",
"introduce" : "Nice to meet you",
"joinedOn" : "2025-07-08T20:09:15.321986"
}
Response fields
Field |
Type |
Description |
|
|
The signature emoji of the target user. |
|
|
The nickname of the target user. |
|
|
The UUID of the target user. |
|
|
The target user’s self-introduction. |
|
|
The date the user joined. |
ModifyMyPage-API
Curl request
$ curl 'http://localhost:8080/user/myinfo?_csrf=oq_CuxBlcFFzsiSafGk2ANytZ6qWtEzqmE1Q_prhV223gbJukpbyiHJRSTJegEaiGkQCY-nOSpOn1XnHoXU0zqzXZFqO5YIM' -i -X PATCH \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '{
"signature" : "",
"name" : "modified",
"introduce" : ""
}'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Request headers
Name | Description |
---|---|
|
CSRF Token |
Request body
{
"signature" : "",
"name" : "modified",
"introduce" : ""
}
Request fields
Field |
Type |
Description |
|
|
Nickname to update |
|
|
Self-introduce to modify |
|
|
An emoji to modify. |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Friendship API
Accept-API
Curl request
$ curl 'http://localhost:8080/friend/1' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie(Requesting user) |
Path parameters
Parameter | Description |
---|---|
|
Id of the requested friendship. |
Request headers
Name | Description |
---|---|
|
CSRF Token |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Block-API
Curl request
$ curl 'http://localhost:8080/friend/block?toUserUuid=friendUUID' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie(Requesting user) |
Request headers
Name | Description |
---|---|
|
CSRF Token |
Query parameters
Parameter | Description |
---|---|
|
UUID of the target user. |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Memo-API
Curl request
$ curl 'http://localhost:8080/friend/1/memo?memo=memo' -i -X PUT \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie(Requesting user) |
Path parameters
Parameter | Description |
---|---|
|
Id of the target friendship. |
Request headers
Name | Description |
---|---|
|
CSRF Token |
Query parameters
Parameter | Description |
---|---|
|
content of memo. |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Request-API
Curl request
$ curl 'http://localhost:8080/friend?toUserUuid=friendUUID' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie(Requesting user) |
Request headers
Name | Description |
---|---|
|
CSRF Token |
Query parameters
Parameter | Description |
---|---|
|
UUID of the target user. |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
The Space Chat
Room API
Create-API
Curl request
$ curl 'http://localhost:8080/chat/room?_csrf=-zCkpr-n6BAs8SY1Led63RdRi1rzWaFErHo-LapajlxSFVeByFSSk9vFiSUBk0MFTspO5C43pjiVOJRpnB9YSMlovm1gcW62' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '{
"name" : "Test Room",
"description" : "Test",
"members" : [ ]
}'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Request headers
Name | Description |
---|---|
|
CSRF Token |
Request body
{
"name" : "Test Room",
"description" : "Test",
"members" : [ ]
}
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 385
{
"roomId" : 1,
"name" : "Test Room",
"manager" : {
"uuid" : "testerUUID",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
},
"description" : "Test",
"members" : [ {
"uuid" : "testerUUID",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
} ],
"createdAt" : "2025-07-08T20:09:02.4476555",
"modifiedAt" : "2025-07-08T20:09:02.4476555"
}
Response fields
Field |
Type |
Description |
|
|
Room ID |
|
|
Room name |
|
|
Room manager |
|
|
Room description |
|
|
Joined members |
|
|
Created time |
|
|
Last modified time |
Delegate-API
Curl request
$ curl 'http://localhost:8080/chat/room/1/manager?targetUuid=testerUUID3' -i -X PUT \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
Room ID |
Request headers
Name | Description |
---|---|
|
CSRF Token |
Query parameters
Parameter | Description |
---|---|
|
Target to delegate manager. |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 844
{
"roomId" : 1,
"name" : "Test Room",
"manager" : {
"uuid" : "testerUUID3",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
},
"description" : "Test",
"members" : [ {
"uuid" : "testerUUID",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
}, {
"uuid" : "testerUUID1",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
}, {
"uuid" : "testerUUID2",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
}, {
"uuid" : "testerUUID5",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
}, {
"uuid" : "testerUUID3",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
}, {
"uuid" : "testerUUID4",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
} ],
"createdAt" : "2025-07-08T20:09:04.435389",
"modifiedAt" : "2025-07-08T20:09:04.435389"
}
Response fields
Field |
Type |
Description |
|
|
Room ID |
|
|
Room name |
|
|
Room manager |
|
|
Room description |
|
|
Joined members |
|
|
Created time |
|
|
Last modified time |
Get My Rooms-API
Curl request
$ curl 'http://localhost:8080/chat/room/my' -i -X GET \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Request headers
Name | Description |
---|---|
|
CSRF Token |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 131
[ {
"rid" : 1,
"name" : "Test Room",
"lastSentMessage" : "Add later",
"lastSentAt" : "2025-07-08T20:09:02.0218928"
} ]
Response fields
Field |
Type |
Description |
|
|
Room ID |
|
|
Room name |
|
|
Last sent message |
|
|
Time of last sent message |
Get Room-API
Curl request
$ curl 'http://localhost:8080/chat/room/1' -i -X GET \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
Room ID |
Request headers
Name | Description |
---|---|
|
CSRF Token |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 383
{
"roomId" : 1,
"name" : "Test Room",
"manager" : {
"uuid" : "testerUUID",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
},
"description" : "Test",
"members" : [ {
"uuid" : "testerUUID",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
} ],
"createdAt" : "2025-07-08T20:09:03.355078",
"modifiedAt" : "2025-07-08T20:09:03.355078"
}
Response fields
Field |
Type |
Description |
|
|
Room ID |
|
|
Room name |
|
|
Room manager |
|
|
Room description |
|
|
Joined members |
|
|
Created time |
|
|
Last modified time |
Invite-API
Curl request
$ curl 'http://localhost:8080/chat/room/1/members?_csrf=RE7U0We7y_Qon8sygSRXEkkJe_qtd4fqV_5AGsG6QLgIvuzidXy1t1La88IFqfsD4wljKig7VsOfTrHHMp9wI_iCI947i4-A' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '{
"members" : [ "testerUUID1", "testerUUID2", "testerUUID3", "testerUUID4", "testerUUID5" ]
}'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
Room ID |
Request headers
Name | Description |
---|---|
|
CSRF Token |
Request body
{
"members" : [ "testerUUID1", "testerUUID2", "testerUUID3", "testerUUID4", "testerUUID5" ]
}
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 843
{
"roomId" : 1,
"name" : "Test Room",
"manager" : {
"uuid" : "testerUUID",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
},
"description" : "Test",
"members" : [ {
"uuid" : "testerUUID",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
}, {
"uuid" : "testerUUID1",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
}, {
"uuid" : "testerUUID2",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
}, {
"uuid" : "testerUUID5",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
}, {
"uuid" : "testerUUID3",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
}, {
"uuid" : "testerUUID4",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
} ],
"createdAt" : "2025-07-08T20:09:02.724394",
"modifiedAt" : "2025-07-08T20:09:02.724394"
}
Response fields
Field |
Type |
Description |
|
|
Room ID |
|
|
Room name |
|
|
Room manager |
|
|
Room description |
|
|
Joined members |
|
|
Created time |
|
|
Last modified time |
Join-API
Curl request
$ curl 'http://localhost:8080/chat/room/1/members/me' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
Room ID |
Request headers
Name | Description |
---|---|
|
CSRF Token |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 477
{
"roomId" : 1,
"name" : "testRoom",
"manager" : {
"uuid" : "testerUUID2",
"name" : "tester2",
"roles" : [ "ROLE_USER" ]
},
"description" : "test",
"members" : [ {
"uuid" : "testerUUID",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
}, {
"uuid" : "testerUUID2",
"name" : "tester2",
"roles" : [ "ROLE_USER" ]
} ],
"createdAt" : "2025-07-08T20:09:03.607461",
"modifiedAt" : "2025-07-08T20:09:03.607461"
}
Response fields
Field |
Type |
Description |
|
|
Room ID |
|
|
Room name |
|
|
Room manager |
|
|
Room description |
|
|
Joined members |
|
|
Created time |
|
|
Last modified time |
Kick-API
Curl request
$ curl 'http://localhost:8080/chat/room/1/members?targetUuid=testerUUID3' -i -X DELETE \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
Room ID |
Request headers
Name | Description |
---|---|
|
CSRF Token |
Query parameters
Parameter | Description |
---|---|
|
Target to kick. |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 751
{
"roomId" : 1,
"name" : "Test Room",
"manager" : {
"uuid" : "testerUUID",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
},
"description" : "Test",
"members" : [ {
"uuid" : "testerUUID",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
}, {
"uuid" : "testerUUID1",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
}, {
"uuid" : "testerUUID2",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
}, {
"uuid" : "testerUUID5",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
}, {
"uuid" : "testerUUID4",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
} ],
"createdAt" : "2025-07-08T20:09:03.913096",
"modifiedAt" : "2025-07-08T20:09:03.913096"
}
Response fields
Field |
Type |
Description |
|
|
Room ID |
|
|
Room name |
|
|
Room manager |
|
|
Room description |
|
|
Joined members |
|
|
Created time |
|
|
Last modified time |
Quit-API
Curl request
$ curl 'http://localhost:8080/chat/room/1/members/me' -i -X DELETE \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
Room ID |
Request headers
Name | Description |
---|---|
|
CSRF Token |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Update-API
Curl request
$ curl 'http://localhost:8080/chat/room/update/1?_csrf=_DXaUdQN6AYkr9FBtIu511RctG5Gon5o1kEuqy7Uv-VAEPg3zgbuMLA12GQJneh51qaN5zFkmVdylkpFt3VPzha3htEkIsEO' -i -X PUT \
-H 'Content-Type: application/json;charset=UTF-8' \
-H '_csrf: dummyCsrfToken' \
--cookie 'JSESSIONID=example-session-id' \
-d '{
"name" : "Update Change",
"description" : "Update test"
}'
Request cookies
Name | Description |
---|---|
|
Authenticated user session ID cookie |
Path parameters
Parameter | Description |
---|---|
|
Room ID |
Request headers
Name | Description |
---|---|
|
CSRF Token |
Request body
{
"name" : "Update Change",
"description" : "Update test"
}
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 395
{
"roomId" : 1,
"name" : "Update Change",
"manager" : {
"uuid" : "testerUUID",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
},
"description" : "Update test",
"members" : [ {
"uuid" : "testerUUID",
"name" : "tester",
"roles" : [ "ROLE_USER" ]
} ],
"createdAt" : "2025-07-08T20:09:03.081583",
"modifiedAt" : "2025-07-08T20:09:03.1000841"
}
Response fields
Field |
Type |
Description |
|
|
Room ID |
|
|
Room name |
|
|
Room manager |
|
|
Room description |
|
|
Joined members |
|
|
Created time |
|
|
Last modified time |
Message API
Message api
This document outlines the WebSocket API for chat messaging.
1. Send Message
Sends a message to a specific chat room.
1.1. WebSocket Endpoint
-
Destination:
/app/chat/send
-
Subscription:
/topic/chat/room/{roomId}
1.2. Request Body
The client sends a message object to the /app/chat/send
destination.
Field | Type | Description |
---|---|---|
|
Long |
The ID of the room to send the message to. |
|
String |
The text content of the message. |
{
"roomId": 1,
"content": "Hello!"
}
1.3. Response Body
Subscribers to /topic/chat/room/{roomId}
will receive a ChatMessage
object.
Field | Type | Description |
---|---|---|
|
Long |
Unique identifier for the message within the room. |
|
Long |
The ID of the room where the message was sent. |
|
String |
The UUID of the user who sent the message. |
|
String |
The content of the message. |
|
MessageType |
The type of the message (e.g., TEXT, IMAGE). |
|
LocalDateTime |
The timestamp when the message was sent. |
{
"messageId": 123,
"roomId": 1,
"sender": "testerUUID",
"content": "Hello!",
"type": "TEXT",
"sentAt": "2025-07-08T10:30:00"
}
2. Get Recent Messages
Retrieves the most recent messages from a chat room. This is a user-specific request.
2.1. WebSocket Endpoint
-
Destination:
/app/chat/recent
-
Subscription:
/user/queue/chat/room/{roomId}
2.2. Request Body
The client sends the roomId
as the payload to the /app/chat/recent
destination.
Field | Type | Description |
---|---|---|
|
Long |
The ID of the room from which to fetch recent messages. |
1
2.3. Response Body
The server sends a list of ChatMessage
objects to the user’s private queue at /user/queue/chat/room/{roomId}
.
List<ChatMessage>
)A list containing ChatMessage
objects. See the ChatMessage
structure in section 1.3.
[
{
"messageId": 30,
"roomId": 1,
"sender": "testerUUID",
"content": "test: 30",
"type": "TEXT",
"sentAt": "2025-07-08T11:00:00"
},
{
"messageId": 31,
"roomId": 1,
"sender": "testerUUID",
"content": "test: 31",
"type": "TEXT",
"sentAt": "2025-07-08T11:00:05"
}
]