From 7d1c8687df298a86a7dde5798bd0f894cc7143d1 Mon Sep 17 00:00:00 2001 From: Leon <147289645+LeoninCS@users.noreply.github.com> Date: Tue, 16 Dec 2025 18:45:52 +0800 Subject: [PATCH] =?UTF-8?q?test:=E6=89=80=E6=9C=89=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=95=B4=E5=90=88=E5=9C=A8=E4=B8=80=E8=B5=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/account.json | 230 ---------------------- test/feed.json | 48 ----- test/like.json | 88 --------- test/postman.json | 487 ++++++++++++++++++++++++++++++++++++++++++++++ test/video.json | 67 ------- 5 files changed, 487 insertions(+), 433 deletions(-) delete mode 100644 test/account.json delete mode 100644 test/feed.json delete mode 100644 test/like.json create mode 100644 test/postman.json delete mode 100644 test/video.json diff --git a/test/account.json b/test/account.json deleted file mode 100644 index bfa965f..0000000 --- a/test/account.json +++ /dev/null @@ -1,230 +0,0 @@ -{ - "info": { - "name": "FeedSystem Account API", - "_postman_id": "e5572218-8268-4a26-9ad8-77c13c908908", - "description": "Account endpoints without automated scripts. Fill jwt_token manually after calling Login.", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" - }, - "item": [ - { - "name": "Register Account", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"username\": \"{{username}}\",\n \"password\": \"{{password}}\"\n}" - }, - "url": { - "raw": "{{host}}/account/register", - "host": [ - "{{host}}" - ], - "path": [ - "account", - "register" - ] - } - } - }, - { - "name": "Login", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"username\": \"{{username}}\",\n \"password\": \"{{password}}\"\n}" - }, - "url": { - "raw": "{{host}}/account/login", - "host": [ - "{{host}}" - ], - "path": [ - "account", - "login" - ] - } - } - }, - { - "name": "Change Password", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"username\": \"{{username}}\",\n \"old_password\": \"{{password}}\",\n \"new_password\": \"{{newPassword}}\"\n}" - }, - "url": { - "raw": "{{host}}/account/changePassword", - "host": [ - "{{host}}" - ], - "path": [ - "account", - "changePassword" - ] - } - } - }, - { - "name": "Find Account By ID", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"id\": {{accountId}}\n}" - }, - "url": { - "raw": "{{host}}/account/findByID", - "host": [ - "{{host}}" - ], - "path": [ - "account", - "findByID" - ] - } - } - }, - { - "name": "Find Account By Username", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"username\": \"{{username}}\"\n}" - }, - "url": { - "raw": "{{host}}/account/findByUsername", - "host": [ - "{{host}}" - ], - "path": [ - "account", - "findByUsername" - ] - } - } - }, - { - "name": "Rename Account (JWT protected)", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Authorization", - "value": "Bearer {{jwt_token}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"new_username\": \"{{newUsername}}\"\n}" - }, - "url": { - "raw": "{{host}}/account/rename", - "host": [ - "{{host}}" - ], - "path": [ - "account", - "rename" - ] - } - } - }, - { - "name": "Logout (JWT protected)", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Authorization", - "value": "Bearer {{jwt_token}}" - } - ], - "body": { - "mode": "raw", - "raw": "{}" - }, - "url": { - "raw": "{{host}}/account/logout", - "host": [ - "{{host}}" - ], - "path": [ - "account", - "logout" - ] - } - } - } - ], - "variable": [ - { - "key": "host", - "value": "http://localhost:8080" - }, - { - "key": "username", - "value": "alice" - }, - { - "key": "password", - "value": "pass123" - }, - { - "key": "newPassword", - "value": "newpass456" - }, - { - "key": "newUsername", - "value": "alice_new" - }, - { - "key": "accountId", - "value": "1" - }, - { - "key": "jwt_token", - "value": "" - } - ] -} diff --git a/test/feed.json b/test/feed.json deleted file mode 100644 index 2814b07..0000000 --- a/test/feed.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "info": { - "name": "FeedSystem Feed API", - "_postman_id": "4c2fd555-b880-4b14-8023-55a944936352", - "description": "Feed endpoints.\n\nPagination:\n- /feed/listLatest: copy response.next_time (unix seconds) into feedLatestTime\n- /feed/listLikesCount: copy response.next_likes_count_before into feedLikesCountBefore", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" - }, - "item": [ - { - "name": "List Latest Feed", - "request": { - "method": "POST", - "header": [{ "key": "Content-Type", "value": "application/json" }], - "body": { - "mode": "raw", - "raw": "{\n \"limit\": {{feedLimit}},\n \"latest_time\": {{feedLatestTime}}\n}" - }, - "url": { - "raw": "{{host}}/feed/listLatest", - "host": ["{{host}}"], - "path": ["feed", "listLatest"] - } - } - }, - { - "name": "List Feed By Likes Count", - "request": { - "method": "POST", - "header": [{ "key": "Content-Type", "value": "application/json" }], - "body": { - "mode": "raw", - "raw": "{\n \"limit\": {{feedLimit}},\n \"likes_count\": {{feedLikesCountBefore}}\n}" - }, - "url": { - "raw": "{{host}}/feed/listLikesCount", - "host": ["{{host}}"], - "path": ["feed", "listLikesCount"] - } - } - } - ], - "variable": [ - { "key": "host", "value": "http://localhost:8080" }, - { "key": "feedLimit", "value": "10" }, - { "key": "feedLatestTime", "value": "0" }, - { "key": "feedLikesCountBefore", "value": "0" } - ] -} diff --git a/test/like.json b/test/like.json deleted file mode 100644 index 67ccafa..0000000 --- a/test/like.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "info": { - "name": "FeedSystem Like API", - "_postman_id": "7fd7e0ed-2d7d-4f74-88b2-f48d7f7083b2", - "description": "Like endpoints with manual token management.", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" - }, - "item": [ - { - "name": "Get Likes Count", - "request": { - "method": "POST", - "header": [{ "key": "Content-Type", "value": "application/json" }], - "body": { - "mode": "raw", - "raw": "{\n \"video_id\": {{videoId}}\n}" - }, - "url": { - "raw": "{{host}}/like/getLikesCount", - "host": ["{{host}}"], - "path": ["like", "getLikesCount"] - } - } - }, - { - "name": "Is Liked (JWT protected)", - "request": { - "method": "POST", - "header": [ - { "key": "Content-Type", "value": "application/json" }, - { "key": "Authorization", "value": "Bearer {{jwt_token}}" } - ], - "body": { - "mode": "raw", - "raw": "{\n \"video_id\": {{videoId}}\n}" - }, - "url": { - "raw": "{{host}}/like/isLiked", - "host": ["{{host}}"], - "path": ["like", "isLiked"] - } - } - }, - { - "name": "Like Video (JWT protected)", - "request": { - "method": "POST", - "header": [ - { "key": "Content-Type", "value": "application/json" }, - { "key": "Authorization", "value": "Bearer {{jwt_token}}" } - ], - "body": { - "mode": "raw", - "raw": "{\n \"video_id\": {{videoId}}\n}" - }, - "url": { - "raw": "{{host}}/like/like", - "host": ["{{host}}"], - "path": ["like", "like"] - } - } - }, - { - "name": "Unlike Video (JWT protected)", - "request": { - "method": "POST", - "header": [ - { "key": "Content-Type", "value": "application/json" }, - { "key": "Authorization", "value": "Bearer {{jwt_token}}" } - ], - "body": { - "mode": "raw", - "raw": "{\n \"video_id\": {{videoId}}\n}" - }, - "url": { - "raw": "{{host}}/like/unlike", - "host": ["{{host}}"], - "path": ["like", "unlike"] - } - } - } - ], - "variable": [ - { "key": "host", "value": "http://localhost:8080" }, - { "key": "videoId", "value": "1" }, - { "key": "jwt_token", "value": "" } - ] -} diff --git a/test/postman.json b/test/postman.json new file mode 100644 index 0000000..8af4d53 --- /dev/null +++ b/test/postman.json @@ -0,0 +1,487 @@ +{ + "info": { + "name": "FeedSystem API (All-in-One)", + "_postman_id": "1a41aef7-6f8a-4bc4-8f55-0c6b12b930d2", + "description": "All endpoints in one collection.\n\nSuggested run order:\n1) Account/Register\n2) Account/Login (auto-saves jwt_token)\n3) Account/Find By Username (auto-saves accountId)\n4) Video/Publish (auto-saves videoId)\n5) Like/* (optional)\n6) Feed/* (optional; copy next fields for pagination)\n\nNotes:\n- JWT protected endpoints require Authorization: Bearer {{jwt_token}}.\n- Pagination vars:\n - /feed/listLatest: response.next_time (unix seconds) -> feedLatestTime\n - /feed/listLikesCount: response.next_likes_count_before -> feedLikesCountBefore", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "const ensure = (k, v) => {", + " const cur = pm.collectionVariables.get(k);", + " if (cur === undefined || cur === null || cur === \"\") pm.collectionVariables.set(k, v);", + "};", + "ensure(\"host\", \"http://localhost:8080\");", + "ensure(\"username\", `user_${Date.now()}`);", + "ensure(\"password\", \"pass123\");", + "ensure(\"newPassword\", \"newpass456\");", + "ensure(\"newUsername\", `user_renamed_${Date.now()}`);", + "ensure(\"jwt_token\", \"\");", + "ensure(\"accountId\", \"1\");", + "ensure(\"authorId\", \"1\");", + "ensure(\"videoId\", \"1\");", + "ensure(\"feedLimit\", \"10\");", + "ensure(\"feedLatestTime\", \"0\");", + "ensure(\"feedLikesCountBefore\", \"0\");", + "ensure(\"commentContent\", `comment_${Date.now()}`);", + "ensure(\"commentId\", \"1\");" + ] + } + } + ], + "item": [ + { + "name": "Account", + "item": [ + { + "name": "Register Account", + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"{{username}}\",\n \"password\": \"{{password}}\"\n}" + }, + "url": { + "raw": "{{host}}/account/register", + "host": ["{{host}}"], + "path": ["account", "register"] + } + } + }, + { + "name": "Login (save jwt_token)", + "event": [ + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "let json = {};", + "try { json = pm.response.json(); } catch (e) {}", + "if (json && json.token) pm.collectionVariables.set(\"jwt_token\", json.token);", + "pm.test(\"Login returns token\", function () {", + " pm.expect(json).to.have.property(\"token\");", + "});" + ] + } + } + ], + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"{{username}}\",\n \"password\": \"{{password}}\"\n}" + }, + "url": { + "raw": "{{host}}/account/login", + "host": ["{{host}}"], + "path": ["account", "login"] + } + } + }, + { + "name": "Find By Username (save accountId)", + "event": [ + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "let json = {};", + "try { json = pm.response.json(); } catch (e) {}", + "if (json && json.id) pm.collectionVariables.set(\"accountId\", String(json.id));", + "pm.test(\"FindByUsername returns id\", function () {", + " pm.expect(json).to.have.property(\"id\");", + "});" + ] + } + } + ], + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"{{username}}\"\n}" + }, + "url": { + "raw": "{{host}}/account/findByUsername", + "host": ["{{host}}"], + "path": ["account", "findByUsername"] + } + } + }, + { + "name": "Find By ID", + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "body": { + "mode": "raw", + "raw": "{\n \"id\": {{accountId}}\n}" + }, + "url": { + "raw": "{{host}}/account/findByID", + "host": ["{{host}}"], + "path": ["account", "findByID"] + } + } + }, + { + "name": "Change Password", + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"{{username}}\",\n \"old_password\": \"{{password}}\",\n \"new_password\": \"{{newPassword}}\"\n}" + }, + "url": { + "raw": "{{host}}/account/changePassword", + "host": ["{{host}}"], + "path": ["account", "changePassword"] + } + } + }, + { + "name": "Rename (JWT protected)", + "event": [ + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "let json = {};", + "try { json = pm.response.json(); } catch (e) {}", + "if (json && json.token) pm.collectionVariables.set(\"jwt_token\", json.token);", + "pm.test(\"Rename returns token\", function () {", + " pm.expect(json).to.have.property(\"token\");", + "});" + ] + } + } + ], + "request": { + "method": "POST", + "header": [ + { "key": "Content-Type", "value": "application/json" }, + { "key": "Authorization", "value": "Bearer {{jwt_token}}" } + ], + "body": { + "mode": "raw", + "raw": "{\n \"new_username\": \"{{newUsername}}\"\n}" + }, + "url": { + "raw": "{{host}}/account/rename", + "host": ["{{host}}"], + "path": ["account", "rename"] + } + } + }, + { + "name": "Logout (JWT protected)", + "request": { + "method": "POST", + "header": [ + { "key": "Content-Type", "value": "application/json" }, + { "key": "Authorization", "value": "Bearer {{jwt_token}}" } + ], + "body": { "mode": "raw", "raw": "{}" }, + "url": { + "raw": "{{host}}/account/logout", + "host": ["{{host}}"], + "path": ["account", "logout"] + } + } + } + ] + }, + { + "name": "Video", + "item": [ + { + "name": "Publish Video (JWT protected) (save videoId)", + "event": [ + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "let json = {};", + "try { json = pm.response.json(); } catch (e) {}", + "if (json && json.id) pm.collectionVariables.set(\"videoId\", String(json.id));", + "if (json && json.author_id) pm.collectionVariables.set(\"authorId\", String(json.author_id));", + "pm.test(\"Publish returns id\", function () {", + " pm.expect(json).to.have.property(\"id\");", + "});" + ] + } + } + ], + "request": { + "method": "POST", + "header": [ + { "key": "Content-Type", "value": "application/json" }, + { "key": "Authorization", "value": "Bearer {{jwt_token}}" } + ], + "body": { + "mode": "raw", + "raw": "{\n \"title\": \"demo video\",\n \"description\": \"manual request\",\n \"play_url\": \"http://example.com/demo.mp4\",\n \"cover_url\": \"http://example.com/demo.jpg\"\n}" + }, + "url": { + "raw": "{{host}}/video/publish", + "host": ["{{host}}"], + "path": ["video", "publish"] + } + } + }, + { + "name": "Get Video Detail", + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "body": { "mode": "raw", "raw": "{\n \"id\": {{videoId}}\n}" }, + "url": { + "raw": "{{host}}/video/getDetail", + "host": ["{{host}}"], + "path": ["video", "getDetail"] + } + } + }, + { + "name": "List Videos By Author ID", + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "body": { "mode": "raw", "raw": "{\n \"author_id\": {{authorId}}\n}" }, + "url": { + "raw": "{{host}}/video/listByAuthorID", + "host": ["{{host}}"], + "path": ["video", "listByAuthorID"] + } + } + } + ] + }, + { + "name": "Like", + "item": [ + { + "name": "Get Likes Count", + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "body": { "mode": "raw", "raw": "{\n \"video_id\": {{videoId}}\n}" }, + "url": { + "raw": "{{host}}/like/getLikesCount", + "host": ["{{host}}"], + "path": ["like", "getLikesCount"] + } + } + }, + { + "name": "Is Liked (JWT protected)", + "request": { + "method": "POST", + "header": [ + { "key": "Content-Type", "value": "application/json" }, + { "key": "Authorization", "value": "Bearer {{jwt_token}}" } + ], + "body": { "mode": "raw", "raw": "{\n \"video_id\": {{videoId}}\n}" }, + "url": { + "raw": "{{host}}/like/isLiked", + "host": ["{{host}}"], + "path": ["like", "isLiked"] + } + } + }, + { + "name": "Like Video (JWT protected)", + "request": { + "method": "POST", + "header": [ + { "key": "Content-Type", "value": "application/json" }, + { "key": "Authorization", "value": "Bearer {{jwt_token}}" } + ], + "body": { "mode": "raw", "raw": "{\n \"video_id\": {{videoId}}\n}" }, + "url": { + "raw": "{{host}}/like/like", + "host": ["{{host}}"], + "path": ["like", "like"] + } + } + }, + { + "name": "Unlike Video (JWT protected)", + "request": { + "method": "POST", + "header": [ + { "key": "Content-Type", "value": "application/json" }, + { "key": "Authorization", "value": "Bearer {{jwt_token}}" } + ], + "body": { "mode": "raw", "raw": "{\n \"video_id\": {{videoId}}\n}" }, + "url": { + "raw": "{{host}}/like/unlike", + "host": ["{{host}}"], + "path": ["like", "unlike"] + } + } + } + ] + }, + { + "name": "Comment", + "item": [ + { + "name": "Publish Comment (JWT protected) (save commentId)", + "event": [ + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "let json = {};", + "try { json = pm.response.json(); } catch (e) {}", + "if (json && json.id) pm.collectionVariables.set(\"commentId\", String(json.id));", + "pm.test(\"Publish comment returns id\", function () {", + " pm.expect(json).to.have.property(\"id\");", + "});" + ] + } + } + ], + "request": { + "method": "POST", + "header": [ + { "key": "Content-Type", "value": "application/json" }, + { "key": "Authorization", "value": "Bearer {{jwt_token}}" } + ], + "body": { + "mode": "raw", + "raw": "{\n \"video_id\": {{videoId}},\n \"content\": \"{{commentContent}}\"\n}" + }, + "url": { + "raw": "{{host}}/comment/publish", + "host": ["{{host}}"], + "path": ["comment", "publish"] + } + } + }, + { + "name": "List All Comments", + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "body": { "mode": "raw", "raw": "{\n \"video_id\": {{videoId}}\n}" }, + "url": { + "raw": "{{host}}/comment/listAll", + "host": ["{{host}}"], + "path": ["comment", "listAll"] + } + } + }, + { + "name": "Delete Comment (JWT protected)", + "request": { + "method": "POST", + "header": [ + { "key": "Content-Type", "value": "application/json" }, + { "key": "Authorization", "value": "Bearer {{jwt_token}}" } + ], + "body": { "mode": "raw", "raw": "{\n \"comment_id\": {{commentId}}\n}" }, + "url": { + "raw": "{{host}}/comment/delete", + "host": ["{{host}}"], + "path": ["comment", "delete"] + } + } + } + ] + }, + { + "name": "Feed", + "item": [ + { + "name": "List Latest Feed (save feedLatestTime)", + "event": [ + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "let json = {};", + "try { json = pm.response.json(); } catch (e) {}", + "if (json && typeof json.next_time !== \"undefined\") pm.collectionVariables.set(\"feedLatestTime\", String(json.next_time));" + ] + } + } + ], + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "body": { + "mode": "raw", + "raw": "{\n \"limit\": {{feedLimit}},\n \"latest_time\": {{feedLatestTime}}\n}" + }, + "url": { + "raw": "{{host}}/feed/listLatest", + "host": ["{{host}}"], + "path": ["feed", "listLatest"] + } + } + }, + { + "name": "List Feed By Likes Count (save feedLikesCountBefore)", + "event": [ + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "let json = {};", + "try { json = pm.response.json(); } catch (e) {}", + "if (json && typeof json.next_likes_count_before !== \"undefined\") pm.collectionVariables.set(\"feedLikesCountBefore\", String(json.next_likes_count_before));" + ] + } + } + ], + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "body": { + "mode": "raw", + "raw": "{\n \"limit\": {{feedLimit}},\n \"likes_count\": {{feedLikesCountBefore}}\n}" + }, + "url": { + "raw": "{{host}}/feed/listLikesCount", + "host": ["{{host}}"], + "path": ["feed", "listLikesCount"] + } + } + } + ] + } + ], + "variable": [ + { "key": "host", "value": "http://localhost:8080" }, + { "key": "username", "value": "" }, + { "key": "password", "value": "" }, + { "key": "newPassword", "value": "" }, + { "key": "newUsername", "value": "" }, + { "key": "jwt_token", "value": "" }, + { "key": "accountId", "value": "" }, + { "key": "authorId", "value": "" }, + { "key": "videoId", "value": "" }, + { "key": "feedLimit", "value": "10" }, + { "key": "feedLatestTime", "value": "0" }, + { "key": "feedLikesCountBefore", "value": "0" }, + { "key": "commentContent", "value": "" }, + { "key": "commentId", "value": "" } + ] +} diff --git a/test/video.json b/test/video.json deleted file mode 100644 index d598d0b..0000000 --- a/test/video.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "info": { - "name": "FeedSystem Video API", - "_postman_id": "8294cdbd-2324-4cac-8768-6bf2157d272b", - "description": "Video endpoints without embedded scripts. Supply jwt_token manually for publish request.", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" - }, - "item": [ - { - "name": "List Videos By Author ID", - "request": { - "method": "POST", - "header": [{ "key": "Content-Type", "value": "application/json" }], - "body": { - "mode": "raw", - "raw": "{\n \"author_id\": {{authorId}}\n}" - }, - "url": { - "raw": "{{host}}/video/listByAuthorID", - "host": ["{{host}}"], - "path": ["video", "listByAuthorID"] - } - } - }, - { - "name": "Get Video Detail", - "request": { - "method": "POST", - "header": [{ "key": "Content-Type", "value": "application/json" }], - "body": { - "mode": "raw", - "raw": "{\n \"id\": {{videoId}}\n}" - }, - "url": { - "raw": "{{host}}/video/getDetail", - "host": ["{{host}}"], - "path": ["video", "getDetail"] - } - } - }, - { - "name": "Publish Video (JWT protected)", - "request": { - "method": "POST", - "header": [ - { "key": "Content-Type", "value": "application/json" }, - { "key": "Authorization", "value": "Bearer {{jwt_token}}" } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"demo video\",\n \"description\": \"manual request\",\n \"play_url\": \"http://example.com/demo.mp4\",\n \"cover_url\": \"http://example.com/demo.jpg\"\n}" - }, - "url": { - "raw": "{{host}}/video/publish", - "host": ["{{host}}"], - "path": ["video", "publish"] - } - } - } - ], - "variable": [ - { "key": "host", "value": "http://localhost:8080" }, - { "key": "authorId", "value": "1" }, - { "key": "videoId", "value": "1" }, - { "key": "jwt_token", "value": "" } - ] -}