[CowAPI] 14. API

준돌·2022년 7월 2일
1

오늘의 Cow

목록 보기
19/45
post-thumbnail

1. 대시보드 (home)

대시보드

  • 대시보드
Method: GET
URL: "/dashboard"

req:
	header:
  	body:

res: 
	header:
  	body: { 
      		todayUser : Long,
    	 	totalUser : Long,
            updatedAt : Timestamp
  
    		aiList: [{
			name : String,
    		responseTime : Double,
			accuracy : Double,
      		},
            
                    ...
                    
            {}]
    	  }

비고 -> 회원 || 비회원

2. 사용자

로그인 화면

  • 회원 가입
Method: POST
URL: "/signup"

req:
	header:
  	body:  {
				email : String,
    			password : String
    		}

res:
	header:
	body: {
    		authorization : String
            isAdmin: Boolean
	      }

error: 409 conflict {
		message: "이미 존재하는 이메일입니다."
}
  • 로그인
Method: POST
URL: "/signin"

req:
	header:
  	body:  {
				email : String,
    			password : String
    		}

res:
	header:
	body: {
    		authorization : String
            isAdmin: Boolean
	      }

error: 409 conflict {
		message: "존재하지 않거나 비밀번호가 다릅니다."
}
  • Naver OAuth
Method: POST
URL: "/login/oauth/naver"

req:
	header: {
    			Authorization: String
    		}
  	body:


res:
	header:
	body: {
      		email : String
    		authorization : String
            isAdmin: Boolean
	      }

마이페이지

  • 마이페이지
Method: GET
URL: "/mypage"

req: 
	header:  {
    			Authorization : String
    	   }
  	body:

res: 
	header:
  	body: {
    		email : String,
            createdAt : String,
            secretKey: String
	      }
  • 재발급
Method: GET
URL: "/reissuance"

req: 
	header:  {
    			Authorization : String
    	   }
  	body:

res: 
	header:
  	body: {
    		email : String,
            createdAt : String,
            secretKey: String
	      }

err: 401 unauthorized {
    message: 'unauthorized'
}
  • 회원 수정
Method: PUT
URL: "/user"

req:
	header: {
    			Authorization : String
    	    }
  	body: {
    		password : String
	      }

res: 
	header:
  	body:

err: 401 unauthorized {
    message: 'unauthorized'
}
  • 회원 탈퇴
Method: DELETE
URL: "/user"

req:
	header: {
    			Authorization : String
    	    }
  	body:
res: 
	header:
  	body:

err: 401 unauthorized {
    message: 'unauthorized'
}

3. QnA

QnA List

  • QnA List 조회 (페이지 네이션, 0 ~ 5개)
Method: GET
URL: "/qna/list/{id}"

req:
	header: {
    			Authorization : `Bearer $(token}`
    	    }
  	body:

res: 
	header:
  	body: {
      		lastPage: Long,
    		qnas :
      		  [
                {
                  id: Long,
                  title: String,
                  updateAt: Timestamp,
                  email : String
                },
                
                {
                }
                ...
                
              ]
    	  }

QnA one

  • QnA 작성
Method: POST
URL: "/qna"

req:
	header: {
    			Authorization : `Bearer $(token}`
    	    }

  	body: {
      		title: String,
       		content: String
    	  }

res: 
	header:
	body:

err: 401 unauthorized {
    message: 'unauthorized'
}
  • QnA 조회
Method: GET
URL: "/qna/{qnaId}"

req:
	header: {
    			Authorization : `Bearer $(token}`
    	    }
  	body:

res: 
	header:
  	body: {
     	 	title: String,
            content: String
    	  }

err: 401 unauthorized {
    message: 'unauthorized'
}

err: 404 Not Found {
		message: '존재하지 않는 게시글입니다'
}
  • QnA 수정
Method: PUT
URL: "/qna/{qnaId}"

req:
	header: {
    			Authorization : `Bearer $(token}`
    	    }
  	body: {
            title: String,
            content: String
    	  }

res: 
	header:
  	body: 

err: 401 unauthorized {
    message: 'unauthorized'
}
  • QnA 삭제
Method: DELETE
URL: "/qna/{qnaId}"

req:
	header: {
    			Authorization : `Bearer $(token}`
    	    }
  	body:

res: 
	header:
  	body:

err: 401 unauthorized {
    message: 'unauthorized'
}

4. Notice

공지 list

  • 공지 List 조회 (페이지 네이션, 0 ~ 5개)
Method: GET
URL: "/notice/list/{noticeId}"

req:
	header: {
    			Authorization : `Bearer $(token}`
    	    }
  	body:

res: 
	header:
  	body: {
   		    lastPage: Long,
    		notices :
      		  [
                {
                  id: Long,
                  title: String,
                  updateAt: Timestamp,
                  email : String
                },
                
                {
                }
                ...
                
              ]
    	  }

공지 one

  • 공지 생성
Method: POST
URL: "/notice"

req:
	header: {
    			Authorization : `Bearer $(token}`
    	    }

  	body: {
      		title: String,
       		content: String
    	  }

res: 
	header:
  	body:

err: 401 unauthorized {
    message: 'unauthorized'
}
  • 공지 조회
Method: GET
URL: "/notice/{noticeId}"

req:
	header: {
    			Authorization : `Bearer $(token}`
    	    }
  	body:

res: 
	header:
  	body: {
     	 	title: String,
            content: String
    }

err: 401 unauthorized {
    message: 'unauthorized'
}

err: 404 Not Found {
    message: '존재하지 않는 게시글입니다.'
}
  • 공지 수정
Method: PUT
URL: "/notice/{noticeId}"

req:
	header: {
    			Authorization : `Bearer $(token}`
    	    }
  	body: {
            title: String,
            content: String
    	  }

res: 
	header:
  	body:

err: 401 unauthorized {
    message: 'unauthorized'
}
  • 공지 삭제
Method: DELETE
URL: "/notice/{noticeId}"

req:
	header: {
    			Authorization : `Bearer $(token}`
    	    }
  	body:

res: 
	header:
  	body:

err: 401 unauthorized {
    message: 'unauthorized'
}

5. AI

AI List

  • AI list 조회
Method: GET
URL: "/ais"

req:
	header: {
    			Authorization : `Bearer $(token}`
    	    }
  	body:

res: 
	header:
  	body: {
     		aiList: [
              {
                field: String (vision || nlp),
                name: String,
                responseTime: Double,
                accuracy: Double
              },
              
              {},
              ...
              
              ]
    }

AI One

  • AI 조회
Method: GET
URL: "/ai/{name}"

req:
	header: {
    			Authorization : `Bearer $(token}`
    	    }
  	body:

res: 
	header:
  	body: {
          name: String,
          responseTime: Double,
          accuracy: Double,
          requestURI : String,
          method: String,
          req: String,
          res: String
        }

err: 404 Not Found {
    message: '존재하지 않는 서비스입니다.'
}

<<<< 여기서 부터는 Only 백엔드 >>>>>

6. Gate way server

AI API 요청

  • VGG19
Method: POST
URL: "/ai/VGG19?email={email}&secretKey={secretKey}"

req:
	header: {
                content-type: "multipart/form-data"
    		}

  	body: {
      		images: form-data
    	  }

res: 
	header:
  	body: {
      		category: String,
            accuracy: Doubld
    	  }
  • Gname
Method: POST
URL: "/ai/gname"

req:
	header: {
    			accessKey: String
    		}
  	body: {
    			content: String
    	  }

res: 
	header:
  	body: {
      		gName: String
    	  }
profile
눈 내리는 겨울이 좋아!

0개의 댓글