{"info":{"_postman_id":"2684fbbb-11eb-4751-b3f2-265d1933d33c","name":"FeedMoa","description":"<html><head></head><body><p>FeedMoa는 유저 계정의 해시태그(<code>#dani</code>)를 기반으로 인스타그램, 스레드, 페이스북, 트위터 등 복수의 SNS에 게시된 게시물 중 유저의 해시태그가 포함된 게시물들을 하나의 서비스에서 확인할 수 있는 통합 Feed 어플리케이션입니다. 이를 통해 본 서비스의 고객은 하나의 채널로 유저(<code>#dani</code>), 또는 브랜드(<code>#danishop</code>) 의 SNS 노출 게시물 및 통계를 확인할 수 있습니다.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"15143510","collectionId":"2684fbbb-11eb-4751-b3f2-265d1933d33c","publishedId":"2s9YRGy9Cg","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2023-10-29T12:24:36.000Z"},"item":[{"name":"사용자 회원가입","id":"c43d3793-65bb-4bd3-8ec8-95bb6c87a5ed","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"account\": \"example\",\r\n    \"email\" :\"example@gmail.com\",\r\n    \"password\": \"120!#123#3jlkh\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/api/signup","description":"<ul>\n<li><code>계정</code> 은 unique 합니다.</li>\n<li><code>이메일</code> 은 올바른 이메일 구조인지 검증 되어야 합니다.</li>\n<li><code>비밀번호</code> 는 아래 중 2 가지 이상의 제약 조건을 가지며, 암호화 되어 저장됩니다.</li>\n</ul>\n<p>가입 조건을 만족한 상태에서 가입요청 시, 유저가 생성되고 6자리의 랜덤한 코드가 입력한 이메일로 발송됩니다. (이메일 발송은 생략)</p>\n","urlObject":{"port":"8080","path":["api","signup"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"0df2200d-5308-4cbc-82c0-b991788174f5","name":"인증 번호 발급","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"account\": \"ida34bcd\",\r\n    \"email\" :\"emai22l@gmail.com\",\r\n    \"password\": \"120!#123#3jlkh\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/api/signup"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{ \r\n    \"verifyCode\" : \"241745\"\r\n}"}],"_postman_id":"c43d3793-65bb-4bd3-8ec8-95bb6c87a5ed"},{"name":"사용자 가입 승인","id":"71280114-005a-402a-81e5-a5db59bd484e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"account\": \"ida34bcd\",\r\n    \"email\" :\"emai22l@gmail.com\",\r\n    \"password\": \"120!#123#3jlkh\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/api/verify","description":"<p><code>계정</code> , <code>비밀번호</code>, <code>인증코드</code> 가 올바르게 입력되었을 시 <code>가입승인</code>이 되어 서비스 이용이 가능합니다.</p>\n","urlObject":{"port":"8080","path":["api","verify"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"89bc2cf7-783b-4e90-85dc-52ce61abce78","name":"가입 승인","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{ \r\n    \"account\" : \"example\",\r\n    \"password\" : \"123asd!@#$\", \r\n    \"verifyCode\" : \"241745\" \r\n }","options":{"raw":{"language":"json"}}},"url":"localhost:8080/api/signup"},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"71280114-005a-402a-81e5-a5db59bd484e"},{"name":"사용자 로그인 - Refresh Token  요청","id":"facefd98-bc3f-4933-b1d7-531c7f0cca7e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"account\":\"user\",\r\n  \"password\":\"asdasd111!\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"localhost:8080/api/login","description":"<p><code>계정</code>, <code>비밀번호</code> 로 로그인 시 JWT 가 발급됩니다.</p>\n","urlObject":{"port":"8080","path":["api","login"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"9fd61092-8558-463f-9fba-44c09d94bbd6","name":"사용자 로그인 - Refres Token  요청","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"account\":\"user\",\r\n  \"password\":\"asdasd111!\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"localhost:8080/api/login"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"\r\neyJhbGciOiJIUzUxMiJ9.\r\n…\r\naJzGDkPYceQ"}],"_postman_id":"facefd98-bc3f-4933-b1d7-531c7f0cca7e"},{"name":"사용자  Access Token  요청","id":"f3f119e8-720b-4476-ac5c-f21662e5bb44","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzUxMiJ9...V1dUlSKyJPA","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"account\":\"user\",\r\n  \"password\":\"asdasd111!\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"localhost:8080/api/refresh","description":"<p>로그인 이후 모든 API 요청 Header 에 <code>JWT</code> 가 항시 포함되며, <code>JWT</code> 유효성을 검증합니다.</p>\n","urlObject":{"port":"8080","path":["api","refresh"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"05c713f2-0320-4d5e-8148-146b932bb307","name":"사용자 로그인 - Refres Token  요청","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"account\":\"user\",\r\n  \"password\":\"asdasd111!\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"localhost:8080/api/login"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"eyJhbGciOiJIUzUxMiJ9.\r\n...\r\n2ZApkCzG8rGQ"}],"_postman_id":"f3f119e8-720b-4476-ac5c-f21662e5bb44"},{"name":"게시글 목록","id":"b1b1c767-62e5-4e69-a6bb-c8eb5ad579ec","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8080/api/posts","description":"<p>Feed에 나타나는 게시물 목록 API</p>\n<ul>\n<li>아래 **<code>쿼리 파라미터</code>**를 사용 가능합니다.Feed에 나타나는 게시물 목록 API</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>필드</th>\n<th>속성</th>\n<th>설명</th>\n<th>예시 값</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>hashtag</td>\n<td>any</td>\n<td>1개의 hashtag</td>\n<td></td>\n</tr>\n<tr>\n<td>type</td>\n<td>string (열거형)</td>\n<td>게시글이 존재하는 SNS 유형, 가능한 유형 값은 \"facebook\", \"twitter\", \"instagram\", \"threads\"</td>\n<td>\"twitter\"</td>\n</tr>\n<tr>\n<td>search</td>\n<td>string</td>\n<td>검색 키워드, 제목 혹은 게시글 내에 해당 키워드가 포함되어 있으면 결과 값에 포함됩니다.</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"port":"8080","path":["api","posts"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"f433f204-7f16-4b16-9d8a-cf2240a6428f","name":"검색조건 없음","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8080/api/posts"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sat, 28 Oct 2023 10:19:47 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"content\": [\n        {\n            \"id\": 20,\n            \"contentId\": \"cabe7cf5-d1cd-468a-82d4-ff4f2c3e97fa\",\n            \"type\": \"TWITTER\",\n            \"title\": \"홍대 맛집 리스트\",\n            \"content\": \"홍대에 있는 디저트 맛집들 \",\n            \"hashtags\": [\n                \"맛집\",\n                \"디저트\",\n                \"카페\"\n            ],\n            \"viewCount\": 0,\n            \"likeCount\": 0,\n            \"shareCount\": 0\n        },\n        {\n            \"id\": 19,\n            \"contentId\": \"348c07bf-df31-49c5-b5a9-b5c4e300ee3c\",\n            \"type\": \"TWITTER\",\n            \"title\": \"제주도 디저트 추천\",\n            \"content\": \"제주도에 맛있는 디저트 카페가...\",\n            \"hashtags\": [\n                \"맛집\",\n                \"레스토랑\",\n                \"카페\"\n            ],\n            \"viewCount\": 0,\n            \"likeCount\": 0,\n            \"shareCount\": 0\n        }\n    ],\n    \"pageable\": {\n        \"pageNumber\": 0,\n        \"pageSize\": 10,\n        \"sort\": {\n            \"empty\": false,\n            \"sorted\": true,\n            \"unsorted\": false\n        },\n        \"offset\": 0,\n        \"paged\": true,\n        \"unpaged\": false\n    },\n    \"last\": true,\n    \"totalPages\": 1,\n    \"totalElements\": 2,\n    \"size\": 10,\n    \"number\": 0,\n    \"sort\": {\n        \"empty\": false,\n        \"sorted\": true,\n        \"unsorted\": false\n    },\n    \"first\": true,\n    \"numberOfElements\": 2,\n    \"empty\": false\n}"}],"_postman_id":"b1b1c767-62e5-4e69-a6bb-c8eb5ad579ec"},{"name":"게시글 좋아요","id":"11df48f5-16d6-4e84-bda4-301d3c38b84c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8080/api/posts/1/likes","description":"<p>게시물 목록 또는 상세 에서 게시물 좋아요 클릭 시 사용되는 API</p>\n<ul>\n<li><code>URI</code>: /api/posts/{post_id}/likes</li>\n<li>게시물들은 본 서비스가 아닌 외부 서비스에서 관리됩니다. 그렇기에 좋아요 클릭 시 각 SNS 별 아래 명시된 API 를 호출합니다.</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>type</th>\n<th>method</th>\n<th>endpoint</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>facebook</td>\n<td>POST</td>\n<td><a href=\"https://www.facebook.com/likes/\">https://www.facebook.com/likes/</a></td>\n</tr>\n<tr>\n<td>twitter</td>\n<td>POST</td>\n<td><a href=\"https://www.twitter.com/likes/\">https://www.twitter.com/likes/</a></td>\n</tr>\n<tr>\n<td>instagram</td>\n<td>POST</td>\n<td><a href=\"https://www.instagram.com/likes/\">https://www.instagram.com/likes/</a></td>\n</tr>\n<tr>\n<td>threads</td>\n<td>POST</td>\n<td><a href=\"https://www.threads.net/likes/\">https://www.threads.net/likes/</a></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"port":"8080","path":["api","posts","1","likes"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"8d2731ce-e3ee-45ab-ada4-84aa96ea9152","name":"성공","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":""},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Mon, 30 Oct 2023 01:40:34 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 1,\n    \"likeCount\": 6\n}"}],"_postman_id":"11df48f5-16d6-4e84-bda4-301d3c38b84c"},{"name":"게시글 공유","id":"3228e432-a605-49a1-a25f-245ff18a438c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8080/api/posts/2/share","description":"<p>게시물 목록 또는 상세 에서 공유하기 클릭 시 사용되는 API</p>\n<ul>\n<li><code>URI</code>: /api/posts/{post_id}/share</li>\n<li>게시물들은 본 서비스가 아닌 외부 서비스에서 관리됩니다. 그렇기에 좋아요 클릭 시 각 SNS 별 아래 명시된 API 를 호출합니다.</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>type</th>\n<th>method</th>\n<th>endpoint</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>facebook</td>\n<td>POST</td>\n<td><a href=\"https://www.facebook.com/share/\">https://www.facebook.com/share/</a></td>\n</tr>\n<tr>\n<td>twitter</td>\n<td>POST</td>\n<td><a href=\"https://www.twitter.com/share/\">https://www.twitter.com/share/</a></td>\n</tr>\n<tr>\n<td>instagram</td>\n<td>POST</td>\n<td><a href=\"https://www.instagram.com/share/\">https://www.instagram.com/share/</a></td>\n</tr>\n<tr>\n<td>threads</td>\n<td>POST</td>\n<td><a href=\"https://www.threads.net/share/\">https://www.threads.net/share/</a></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"port":"8080","path":["api","posts","2","share"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"381de8c3-d5de-4653-9444-5ad9de2ea2e5","name":"성공","originalRequest":{"method":"GET","header":[]},"status":"OK","code":200,"_postman_previewlanguage":"","header":[""],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\r\n    \"id\": 1,\r\n    \"shareCount\": 7\r\n}"}],"_postman_id":"3228e432-a605-49a1-a25f-245ff18a438c"},{"name":"게시물 상세","id":"bd4f9ebc-c9b4-4855-92a3-a2135679d4bf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8080/api/posts/{id}","description":"<p>게시물 목록 또는 상세 에서 공유하기 클릭 시 사용되는 API</p>\n<ul>\n<li><code>URI</code>: /api/posts/{post_id}/share</li>\n<li>게시물들은 본 서비스가 아닌 외부 서비스에서 관리됩니다. 그렇기에 좋아요 클릭 시 각 SNS 별 아래 명시된 API 를 호출합니다.</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>type</th>\n<th>method</th>\n<th>endpoint</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>facebook</td>\n<td>POST</td>\n<td><a href=\"https://www.facebook.com/share/\">https://www.facebook.com/share/</a></td>\n</tr>\n<tr>\n<td>twitter</td>\n<td>POST</td>\n<td><a href=\"https://www.twitter.com/share/\">https://www.twitter.com/share/</a></td>\n</tr>\n<tr>\n<td>instagram</td>\n<td>POST</td>\n<td><a href=\"https://www.instagram.com/share/\">https://www.instagram.com/share/</a></td>\n</tr>\n<tr>\n<td>threads</td>\n<td>POST</td>\n<td><a href=\"https://www.threads.net/share/\">https://www.threads.net/share/</a></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"port":"8080","path":["api","posts","{id}"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"3efbcea2-9dce-48ed-b29c-a5c806ca24d4","name":"성공","originalRequest":{"method":"GET","header":[]},"status":"OK","code":200,"_postman_previewlanguage":"","header":[""],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\r\n    \"id\": 2,\r\n    ”contentId” : “2”,\r\n    \"viewCount\": 2,\r\n    ”likecount”:1\r\n    ”hashtag”:\"맛집”,\r\n    ”content”: “제주도에 맛있는 디저트 카페가...”,\r\n    ”title”:“제주도 디저트 카페 추천”\r\n}"}],"_postman_id":"bd4f9ebc-c9b4-4855-92a3-a2135679d4bf"}]}