Skip to content

API 명세

kkole3897 edited this page Nov 5, 2020 · 23 revisions

API 명세

목록

  • user
    • Login (OAuth)
  • issue
    • CREATE
    • READ (Issue list)
    • READ (Detail page)
    • UPDATE (Edit issue)
    • UPDATE (Open / Close)
  • label
    • CREATE
    • READ
    • UPDATE
    • DELETE
  • milestones
    • CREATE
    • READ
    • UPDATE
    • DELETE
  • comment
    • CREATE
    • UPDATE
    • DELETE

user 👫

  • 로그인(OAuth) (작성중..)
    • method : GET

    • url : /api/user/login (redirect url)

    • request

      • query
        • code: authorizationCode ...
    • response

      {
          "code" : 200,
          "message" : "Success",
          "data" : {
              
          }        
      
      }
      

issues🗨

  • CREATE

    • method : POST
    • url : /api/issues/{repositoryId}
    • request
      • body
      {
          title,        // required: STRING
          description,  // optional: STRING
          author,       // required: STRING
          assignees:[], // required: INTEGER ARRAY, 없으면 empty ARRAY
          labels:[],    // required: INTEGER ARRAY, 없으면 empty ARRAY
          milestoneId   // optional: INTEGER
      }
      
    • response
      {
          "code" : 201,
          "message" : "Success",
          "data" : {
              "id" : id
          }
      }
      
  • READ

    • method : GET
    • url : /api/issues/{repositoryId}
    • request
    • response
      {
          "code" : 200,
          "message" : "Success",
          "data" : [
              {
                  "id" : id,
                  "title" : title,
                  "issue_number" : issue_number,
                  "author" : {
                      "id" : id,
                      "name" : name,
                      "profile_url" : profile_url,
                      }
                  "create_date" : create_date,
                  "update_date" : update_date,
                  "close_date": close_date
                  "labels" : [
                      {
                          "id" : id,
                          "name" : name,
                          "color" : color
                      }
                      ...
                  ],
                  "milestone" : {
                      "id" : id,
                      "title" : title
                  },
                  "assignees" : [
                      {
                          "id" : id,
                          "profile_url" : profile_url,
                      },
                      ...
                  ],
                  "number_of_comments": 4
              },
              ...
          ]
      }
      
  • READ (상세)

    • method : GET
    • url : /api/issues/{repositoryId}/{issueNumber}
    • request
    • response
      {   
          "code": 200,
          "message" : "Success",
          "data": {
              "title" : title,
              "description" : description,
              "author" : {
                  "profile_url" : profile_url,
                  "id" : id,
                  "user_name" : user_name,
              },
              "create_date" : create_date,
              "update_date" : update_date,
              "close_date" : close_date,
              "issue_number" : issue_number,
              "milestone" {
                  "id" : id,
                  "title" : title,
                  "due_date" : due_date,
                  "number_of_opened_issues": 3,
                  "number_of_closed_issues": 0,
              },
              "labels" : [
                  {
                      "id": id,
                      "name": name,
                      "color": color
                  },
                  ...
              ],
              "comments" : [
                  {
                      "author" : {
                          "profile_url" : profile_url,
                          "id" : id,
                          "user_name" : user_name,
                      },
                      "description" : description,
                      "create_date" : create_date,
                      "update_date" : update_date,
                  },
                  ...
              ],
              "assignees" : [
                  {
                      "id": id,
                      "user_name": user_name,
                      "profile_url": profile_url
                  },
                  ...
              ]
          }
          
      }
      
  • UPDATE (issue 수정)

    • method : PUT
    • url : /api/issues
    • request
      • body
      {
          id,             // required: INTEGER
          title,          // required: STRING
          description,    // optional: STRING
          assignees:[],   // optional: INTEGER ARRAY, 없으면 empty ARRAY
          labels:[],      // optional: INTEGER ARRAY, 없으면 empty ARRAY
          milestoneId,    // optional: INTEGER
          closedAt        // required: STRING (open: '', close: 'DATETIME 형식')
      }
      
    • response
      {
          "code": 200,
          "message": "Success",
          "data": {
              "id" : id
          }
      }
      

label 🏷️

  • CREATE
    • method : POST
    • url : /api/labels/{repositoryId}
    • request
      • body
      {    
          name,
          description,
          color,
      }
      
    • response
      {
          "code" : 201,
          "message" : "Success",
          "data" : {
              "id" : id
          }
      }
      
  • READ
    • method : GET
    • url : /api/labels/{repositoryId}
    • request
    • response
      { 
          "code" : 200,
          "message" :"Success", 
          "data" : [
              {
                  "id" : id,
                  "name" : name,
                  "description" : description,
                  "color" : color
              },
              ...
          ]
      }
      
  • UPDATE
    • method : PUT
    • url : /api/labels/{repositoryId}
    • request
      • body
      {
          id,
          name,
          description,
          color
      }
      
    • response
      {
          "code": 200,
          "message": "Success",
          "data": {
              "id": id
          }
      }
      
  • DELETE
    • method : DELETE
    • url : /api/labels/{repositoryId}/{labelId}
    • request
    • response
      {
          "code": 200,
          "message": "Success"
      }
      

milestones 🥌

  • CREATE

    • method : POST
    • url : /api/milestones/{repositoryId}
    • request
      • body
        {
            title (required),
            due_date (optional),
            description (optional)
        }
        
    • response
      { 
          "code" : 201,
          "message" :"Success", 
          "data" : {
              "id" : id
          },
      }
      
  • READ

    • method : GET
    • url : /api/milestones/{repositoryId}
    • request
    • response
      { 
          "code" : 200, 
          "data" : [
              {
                  "id" : id,
                  "title" : title,
                  "description" : description,
                  "due_date" : due_date,
                  "number_of_total_issues": 3,
                  "number_of_closed_issues": 0,
              },
              ...
          ]
      }
      
  • UPDATE

    • method : PUT
    • url : /api/milestones/{repositoryId}
    • request
      {
          id,
          title,
          due_date,
          description,
          close_date
      }
      
    • response
      { 
          "code" : 200, 
          "data" : {
              "id" : id
          }
      }
      
  • DELETE

    • method : DELETE
    • url : /api/milestones/{repositoryId}/{milestoneId}
    • request
    • response
      { 
          "code" : 200,
          "message" : "Success"
      }
      

comment 🗨️

  • CREATE

    • method : POST
    • url : /api/comments/{issueId}
    • request
      • body
      {
          "description" : description,
          "authorId" : authorId,
      }
      
    • response
      {
          "code" : 201,
          "data" : {
              "id": id
          }
      }
      
  • UPDATE

    • method : PUT
    • url : /api/comments
    • request
      • body
      {
          "id" : id,
          "description" : description,
      }
      
    • response
       { 
           "code" : 200, 
           "data" : {
               "id" : id
           }
       }
      
  • DELETE

    • method : DELETE
    • url : /api/comments/{commentId}
    • request
    • response
       { 
           "code" : 200, 
           "message" : "Success",
       }
      

공통

  • FAIL (Server Error)
{
    "code" : 500,
    "message" : "Fail"
}
  • FAIL (Not Found)
{
    "code": 404,
    "message": "Fail"
}
  • FAIL (Unauthorized)
{
    "code": 401,
    "message": "Fail"
}

Clone this wiki locally