ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • REST API 디자인하기
    Project/트윗 클론코딩 2023. 9. 19. 10:19
    반응형

    트윗에 관한 일련의 정보와

    로그인에 대한 API만 있으면 충분할 것 같다.

    기능 주소 Method / Req Res Description
    모든 트윗 불러오기 /tweets GET 200,
    { tweets : [] }
     
    트윗 작성 /tweets POST / 
    {tweetid : "text",
    userid : "text",
    content : "text",
    createTime : "date"}
    201, Created  
    작성자별 tweet 조회 /tweets/:id GET /
    {userid : "text"}
    200, {tweets : [filterd]} 주소에서 전달받은 params에 있는 id로 작성자를 filtering하여 특정 사용자가 작성한 트윗만 전송한다
    내가 쓴 트윗 수정하기 /tweets/:tweetId PATCH / 
    {tweetid : "text",
    content : "text,
    createTime : "date"}
    204, No Content  
    트윗 삭제하기 /tweets/:tweetId DELETE / 
    {tweetid : "text"}
    204, No Content  
    로그인하기 /auth POST / 
    {userid : "text",
    password : "text"}
    200,
    {accessToken:"token",
    userid : "text}
     
    회원가입하기 /auth POST / 
    {userid : "text",
    password : "text",
    name : "text",
    imageURL : "url",
    email : "email",
    createTime : sysdate}
    201, Created


     
    아이디 중복확인 /auth/:id POST /
    {userid : "text"}
    200, OK

    400, 중복 시 BadReq
     

    우선 이정도로 생각해봤는데

    강의에서 어떻게 작성했는지는 밑에 작성할 예정이다 

     

     

    ------------------------

    Tweets

    • Tweet Schema
    • { id: string, // 트윗 아이디 text: string, // 트윗 텍스트 createdAt: Date, // 트윗 생성 날짜 name: string, // 사용자 이름 username: string, // 사용자 닉네임 (아이디) url: string (optional) // 사용자 프로파일 사진 URL }

    GET /tweets

    • get all tweets
      {
         [tweet, tweet ....] 
      }
      
    • Response 200

    GET /tweets?username=:username

    • get all tweets for user's username
      {
         [tweet, tweet ....] 
      }
      
    • Response 200

    GET /tweets/:id

    • get tweet by id
      {
         tweet
      }
      
    • Response 200

    POST /tweets

    • creating new tweet
      {
         text,
         name,
         username,
      	 url, (optinal)
      }
      
      Response 201
    • { tweet }
    • Request

    PUT /tweets/:id

    • updating tweet
      {
         text
      }
      
      Response 200
    • { tweet }
    • Request

    DELETE /tweets/:id

    • deleting tweet
    • Response 204

     

     

    위 내용은 강의에서 작성한 내용인데 작성자별 트윗을 불러오는 과정에서 username을 사용했다

    그리고 이런 RESTful API를 정의하기 전에 트윗에 대한 스키마를 먼저 작성하여

    어떤 형식으로 DB에 데이터를 저장할건지 먼저 구상하고

    그 뒤에 API에 어떤 데이터를 전송할건지 구상하는게 훨씬 편하다고 했다. 맞는 말이다.

    다음에 다른 프로젝트에서 설계할 때 순서 잘 지키자.

    반응형

    'Project > 트윗 클론코딩' 카테고리의 다른 글

    Authentication 구축하기  (0) 2023.09.30
    서버에서 Validation & Sanitization 수행하기  (0) 2023.09.24
    서버 아키텍쳐 구축하기  (0) 2023.09.23
    REST API 서버 구축하기  (0) 2023.09.22
    프로젝트 개요  (0) 2023.09.19

    댓글

Designed by Tistory.