Authorization
+깃허브 로그인 url 받기
+Request
+GET /api/authorization/github HTTP/1.1
+Host: localhost:8080
+Response
+HTTP/1.1 200 OK
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 49
+
+{
+ "url" : "http://github.authorization.url"
+}
+깃허브 로그인 후
+Request
+GET /api/afterlogin?code=random HTTP/1.1
+Host: localhost:8080
+Response
+HTTP/1.1 200 OK
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 55
+
+{
+ "token" : "jwt token",
+ "username" : "binghe"
+}
+Comment
+댓글 등록
+Request
+POST /api/posts/1/comments HTTP/1.1
+Content-Type: application/json;charset=UTF-8
+Authorization: Bearer test
+Content-Length: 26
+Host: localhost:8080
+
+{
+ "content" : "test"
+}
+Response
+HTTP/1.1 200 OK
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 96
+
+{
+ "id" : 1,
+ "authorName" : "kevin",
+ "content" : "test comment",
+ "isLiked" : false
+}
+댓글 등록 - 내용이 없는 경우
+Request
+POST /api/posts/1/comments HTTP/1.1
+Content-Type: application/json;charset=UTF-8
+Authorization: Bearer test
+Content-Length: 2
+Host: localhost:8080
+
+""
+Response
+HTTP/1.1 400 Bad Request
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 29
+
+{
+ "errorCode" : "F0001"
+}
+댓글 등록 - 내용이 없는 경우
+Request
+POST /api/posts/1/comments HTTP/1.1
+Content-Type: application/json;charset=UTF-8
+Authorization: Bearer test
+Content-Length: 2
+Host: localhost:8080
+
+""
+Response
+HTTP/1.1 400 Bad Request
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 29
+
+{
+ "errorCode" : "F0001"
+}
+Authorization
+팔로잉 요청 - 로그인
+Request
+POST /api/profiles/testUser/followings HTTP/1.1
+Content-Type: application/json;charset=UTF-8
+Authorization: Bearer testToken
+Accept: */*
+Host: localhost:8080
+Response
+HTTP/1.1 200 OK
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 50
+
+{
+ "followerCount" : 1,
+ "following" : true
+}
+언팔로우 요청 - 로그인
+Request
+POST /api/profiles/testUser/followings HTTP/1.1
+Content-Type: application/json;charset=UTF-8
+Authorization: Bearer testToken
+Accept: */*
+Host: localhost:8080
+Response
+HTTP/1.1 200 OK
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 51
+
+{
+ "followerCount" : 1,
+ "following" : false
+}
+팔로잉 요청 - 비 로그인
+Request
+POST /api/profiles/testUser/followings HTTP/1.1
+Content-Type: application/json;charset=UTF-8
+Accept: */*
+Host: localhost:8080
+Response
+HTTP/1.1 401 Unauthorized
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 29
+
+{
+ "errorCode" : "A0001"
+}
+언팔로우 요청 - 비 로그인
+Request
+POST /api/profiles/testUser/followings HTTP/1.1
+Content-Type: application/json;charset=UTF-8
+Accept: */*
+Host: localhost:8080
+Response
+HTTP/1.1 401 Unauthorized
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 29
+
+{
+ "errorCode" : "A0001"
+}
+Post
+게시물 작성 - 로그인
+Request
+POST /api/posts HTTP/1.1
+Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
+Authorization: pickgit
+Host: localhost:8080
+
+--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
+Content-Disposition: form-data; name=githubRepoUrl
+
+https://github.com/woowacourse-teams/2021-pick-git/
+--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
+Content-Disposition: form-data; name=content
+
+pickgit
+--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
+Content-Disposition: form-data; name=tags
+
+java
+--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
+Content-Disposition: form-data; name=tags
+
+spring
+--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
+Content-Disposition: form-data; name=images; filename=testImage1.jpg
+Content-Type: image/jpeg
+
+testimage1Binary
+--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
+Content-Disposition: form-data; name=images; filename=testImage2.jpg
+Content-Type: image/jpeg
+
+testimage2Binary
+--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
+Response
+HTTP/1.1 201 Created
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Location: /api/posts/jipark3/1
+게시물 작성 - 비 로그인
+Request
+POST /api/posts HTTP/1.1
+Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
+Authorization: Bad AccessToken
+Host: localhost:8080
+
+--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
+Content-Disposition: form-data; name=githubRepoUrl
+
+https://github.com/woowacourse-teams/2021-pick-git/
+--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
+Content-Disposition: form-data; name=content
+
+pickgit
+--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
+Content-Disposition: form-data; name=tags
+
+java
+--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
+Content-Disposition: form-data; name=tags
+
+spring
+--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
+Content-Disposition: form-data; name=images; filename=testImage1.jpg
+Content-Type: image/jpeg
+
+testimage1Binary
+--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
+Content-Disposition: form-data; name=images; filename=testImage2.jpg
+Content-Type: image/jpeg
+
+testimage2Binary
+--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
+Response
+HTTP/1.1 401 Unauthorized
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 29
+
+{
+ "errorCode" : "A0002"
+}
+홈 피드 요청 - 로그인
+Request
+GET /api/posts?page=0&limit=3 HTTP/1.1
+Authorization: oauth.access.token
+Host: localhost:8080
+Response
+HTTP/1.1 200 OK
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 518
+
+[ {
+ "id" : 1,
+ "imageUrls" : [ "iamge1Url", "image2Url" ],
+ "githubRepoUrl" : "githubRepoUrl",
+ "content" : "content",
+ "authorName" : "authorName",
+ "profileImageUrl" : "profileImageUrl",
+ "likesCount" : 1,
+ "tags" : [ "tag1", "tag2" ],
+ "createdAt" : "2021-07-18T21:53:06.4548197",
+ "updatedAt" : "2021-07-18T21:53:06.4548197",
+ "comments" : [ {
+ "id" : 1,
+ "authorName" : "commentAuthorName",
+ "content" : "commentContent",
+ "isLiked" : false
+ } ],
+ "isLiked" : false
+} ]
+홈 피드 요청 - 비 로그인
+Request
+GET /api/posts?page=0&limit=3 HTTP/1.1
+Host: localhost:8080
+Response
+HTTP/1.1 200 OK
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 518
+
+[ {
+ "id" : 1,
+ "imageUrls" : [ "iamge1Url", "image2Url" ],
+ "githubRepoUrl" : "githubRepoUrl",
+ "content" : "content",
+ "authorName" : "authorName",
+ "profileImageUrl" : "profileImageUrl",
+ "likesCount" : 1,
+ "tags" : [ "tag1", "tag2" ],
+ "createdAt" : "2021-07-18T21:53:06.3530522",
+ "updatedAt" : "2021-07-18T21:53:06.3530522",
+ "comments" : [ {
+ "id" : 1,
+ "authorName" : "commentAuthorName",
+ "content" : "commentContent",
+ "isLiked" : false
+ } ],
+ "isLiked" : false
+} ]
+레포지토리 요청 - 로그인
+Request
+GET /api/github/$jipark3/repositories HTTP/1.1
+Authorization: oauth.access.token
+Host: localhost:8080
+Response
+HTTP/1.1 200 OK
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 51
+
+[ {
+ "name" : "pick"
+}, {
+ "name" : "git"
+} ]
+Profile
+내 프로필 조회
+Request
+GET /api/profiles/me HTTP/1.1
+Content-Type: application/json;charset=UTF-8
+Authorization: Bearer testToken
+Accept: */*
+Host: localhost:8080
+Response
+HTTP/1.1 200 OK
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 350
+
+{
+ "name" : "yjksw",
+ "image" : "http://img.com",
+ "description" : "The Best",
+ "followerCount" : 0,
+ "followingCount" : 11,
+ "postCount" : 1,
+ "githubUrl" : "https://github.com/yjksw",
+ "company" : "woowacourse",
+ "location" : "Seoul",
+ "website" : "www.pick-git.com",
+ "twitter" : "pick-git twitter",
+ "following" : false
+}
+다른 사용자 프로필 조회 - 로그인
+Request
+GET /api/profiles/testUser%7D HTTP/1.1
+Content-Type: application/json;charset=UTF-8
+Authorization: Bearer testToken
+Accept: */*
+Host: localhost:8080
+Response
+HTTP/1.1 200 OK
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 350
+
+{
+ "name" : "yjksw",
+ "image" : "http://img.com",
+ "description" : "The Best",
+ "followerCount" : 0,
+ "followingCount" : 11,
+ "postCount" : 1,
+ "githubUrl" : "https://github.com/yjksw",
+ "company" : "woowacourse",
+ "location" : "Seoul",
+ "website" : "www.pick-git.com",
+ "twitter" : "pick-git twitter",
+ "following" : false
+}
+다른 사용자 프로필 조회 - 비 로그인
+Request
+GET /api/profiles/testUser%7D HTTP/1.1
+Content-Type: application/json;charset=UTF-8
+Accept: */*
+Host: localhost:8080
+Response
+HTTP/1.1 200 OK
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 349
+
+{
+ "name" : "yjksw",
+ "image" : "http://img.com",
+ "description" : "The Best",
+ "followerCount" : 0,
+ "followingCount" : 11,
+ "postCount" : 1,
+ "githubUrl" : "https://github.com/yjksw",
+ "company" : "woowacourse",
+ "location" : "Seoul",
+ "website" : "www.pick-git.com",
+ "twitter" : "pick-git twitter",
+ "following" : null
+}
+Tag
+특정 유저의 태그 목록 요청
+Request
+GET /api/github/repositories/repo%7D/tags/languages HTTP/1.1
+Authorization: Bearer validtoken
+Host: localhost:8080
+Response
+HTTP/1.1 200 OK
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 28
+
+[ "Java", "Python", "HTML" ]
+유효하지 않은 AccessToken으로 태그 추출 요청
+Request
+GET /api/github/repositories/abc%7D/tags/languages HTTP/1.1
+Authorization: Bearer invalid
+Host: localhost:8080
+Response
+HTTP/1.1 401 Unauthorized
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 29
+
+{
+ "errorCode" : "A0001"
+}
+유효하지 않은 레포지토리 태그 추출 요청
+Request
+GET /api/github/repositories/abc%7D/tags/languages HTTP/1.1
+Authorization: Bearer validtoken
+Host: localhost:8080
+Response
+HTTP/1.1 500 Internal Server Error
+Vary: Origin
+Vary: Access-Control-Request-Method
+Vary: Access-Control-Request-Headers
+Content-Type: application/json
+Content-Length: 29
+
+{
+ "errorCode" : "V0001"
+}
+PickGit API
+