REST API 주소구조

영어 잘하는 패턴

/boards
  GET - search list
  POST - create one
  /{id}
    GET - one show
    PUT - one update (idempotent)
    PATCH - one partial update
    DELETE - one remove
/board
  /search
    GET
  /batch
    GET
    POST
    PUT
    DELETE
  /by
    /code/{code}
    /uuid/{uuid}

DSL로 만들면

route {
  route("/boards") {
    get { }
    post(boardsPostHandler)
    route("/{id}") {
      get { }
      put { }
      patch { }
      delete { }
    }
  }
  route("/board") {
    get("/search") { }
    route("/batch") {
      get { }
      post { }
      put { }
      delete { }
    }
    route("/by") {
      get("/code/{code}") { }
      get("/uuid/{uuid}") { }
    }
  }
}

영어 쌩까는 패턴

/board
  /list
    GET - search list
  /one
    POST - one create
    /{id}
      GET - one show
      PUT - one update (idempodent)
      DELETE - one remove
  /batch
    POST - create many
    /{ids}
      GET - read many
      PUT - update many
      DELETE - remove many
  /by
    /code/{code}
    /uuid/{uuid}

~

게시판같은거나 만드는게 아닐서 REST패턴 적용이 힘든 경우가 많은데
표준구조 안 나오면 고민하지 말고 그냥 대충 하는게 좋다
퍼블릭으로 공개하는 API가 아닌 경우에는 이런건 별로 중요하지 않은 것 같다.
금방 수정도 가능하고

ex) 입금관련기능

  • /deposit/apply POST
  • /deposit/cancel POST
  • /deposit/confirm POST
  • /deposit/status POST

RPC처럼 사용되서 DTO로 파라미터를 전달.. 그냥 다 POST로 구현.

~~

주소나 Http method에 집착하지말자
한 서비스에서 컨벤션만 일정하게 유지되면 된다.

웹사이트 사용기술 알아내는 방법

직접 확인방법

공개된 정보 활용

  • 커뮤니티 질문 또는 글 검색
  • 해당 서비스 채용글 확인
  • StackShare 등의 사이트에 공개된 정보 확인
  • 해당 서비스의 기술블로그

기술적으로 확인

  • HttpHeader, Response 확인
  • 관용적으로 사용되는 주소 패턴 확인
  • Html 메타데이터 확인
  • CSS/JS 형태확인(컴파일?/소스형태)
  • Static파일의 서비스 형태

서비스 사용

이런걸 궁금해 하는 사람들을 위해 주소만 입력하면 확인할 수 있도록 도와주는 서비스가 많이 있다.

W3Techs (https://w3techs.com)

  • 웹에서 주소입력(https://w3techs.com/sites)
  • 브라우저 확장(FireFox, Chrome)

WebApplyzer (https://www.wappalyzer.com)

  • 웹에서 주소입력(https://www.wappalyzer.com/lookup)
  • 브라우저 확장(FireFox, Chrome, Edge)
  • Node 모듈

BuiltWith (https://builtwith.com)

  • 웹에서 직접사용 (https://builtwith.com)

isitwp (https://www.isitwp.com)

  • 웹에서 주소입력 (https://www.isitwp.com)

PageXray (https://pagexray.com)

  • 브라우저 확장 (Chrome)

Whatruns (https://www.whatruns.com)

  • 브라우저 확장 (Firefox,Chrome)

SimilarTech (https://www.similartech.com)

  • 웹에서 주소입력 (https://www.similartech.com)