REST API

노준혁·2023년 1월 2일
0

https://www.freecodecamp.org/korean/news/rest-api-mobeom-sarye-rest-endeupointeu-seolgye-yesi/
https://kinsta.com/knowledgebase/api-endpoint/
https://youtu.be/PmY3dWcCxXI
https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-URL-URI-%EC%B0%A8%EC%9D%B4
https://blog.naver.com/ghdalswl77/222401162545
https://smartbear.com/learn/performance-monitoring/api-endpoints/


  • Client(FE) <-> API <-> Server(BE)
    • 클라이언트와 서버는 서로를 직접 호출 하지 않고 API interface 이용
      -> 따라서, API 설계가 중요 (유지보수, 유연성 측면에서 장점을 드러내야 함.)

  • API
    • application(응용프로그램)이 다른 application과 data를 share할 수 있도록 하는 interface, rule
    • API를 이용하면, 내 application과 third-party app 사이에 data를 share할 수 있음
    • request와 response를 위한 명세
    • request와 response를 사용해 동작함
    • HTTP 요청을 통해 웹 애플리케이션 혹은 웹 서버로부터 정보를 주고 받음
  • EndPoint
    • communication channel의 한 쪽 끝
    • API는 endpoint에 service URL을 포함
    • 각 endpoint는 API가 기능을 수행하는 데 필요한 resources에 access할 수 있는 Location을 나타냄
    • API가 request를 보내 액세스할 수 있도록 해당 resource가 있는 위치를 나타내는 곳을 endpoint라 함.
    • 즉, request를 받아 올바른 response를 줄 수 있는 지점을 의미
    • Resource의 정확한 Location을 결정하는데 도움을 줌.
  • Difference between an API and an Endpoint
    API = application들이 상호작용 하는 protocols and tools
    EndPoint = API 서버에서 Resource의 위치를 제공해 access할 수 있는 API의 URI
    모든 API에는 Endpoint가 존재

  • How APIs Work
    두 application(1,2라 칭함)이 HTTP를 통해 INTERNET 상에서 통신을 한다고 가정.
    1 Application(Client단)이 2 Application(Server단, API endpoint)에 API request 전송 -> Server는 Client로부터 결과를 수신 -> requeset된 작업 수행, 결과를 response 형태로 Client로 전송

  • Endpoints Work With APIs

    kinsta.com

  • REST API

    • REST = Representational State Transfer = Resource를 현재 상태에 맞는 형태로 전송
    • HTTP를 이용하며, HTTP의 장점을 최대한 활용하고 규격화된 방식으로 통신할 수 있는 통신 규칙
    • RESTful 하게 서비스 API를 구현한 것
    • REST에서는 URI로 Resource에 액세스해 정보를 주고 받음
    • REST에서는 HTTP 메소드(CRUD)를 통해 작업 수행
    • 클라이언트 <-> 서버 간 통신을 원활하게 진행하기 위한 통신 규칙
    • API는 RESTful 이라는 REST Design 규칙을 따름
      -> 컴퓨터들이 HTTP로 통신을 진행할 때 같은 형식에 맞춰 통신할 수 있음.
  • Data를 주고 받을 때 JSON 포맷 사용

    • 최근에는 XML, HTML로 API 요청과 응답을 주고 받지 않고 JSON을 사용.
  • REST API Design -> endpoint 주소에는 명사 사용 -> endpoint가 하는 일을 나타냄
    -> HTTP 메소드가 이미 CRUD(POST,GET,PUT,DELETE HTTP 메소드) 동작을 동사로 나타내기 때문

  • API DB가 매우 클 때 최적화를 위해 모든 resource를 가져오는게 아니라 필터링을 거친다.
    -> ex) https://test.com/posts?tags=apple
    이 endpoint는 모든 게시물을 받아오는게 아니라 apple 태그를 가진 게시물만 받아옴.

  • API 문서 툴 = Swagger, API test site = postman


  • URI(Uniform Resource Identifier)는 Resource를 표현 -> URI는 정보를 식별함.
  • URI를 통해 Resource를 식별하지만, 사용하기 위해 정보를 가공 시킬 필요가 있음
  • 정보에 대한 가공은 CRUD로 이루어짐.
  • REST API는 HTTP를 이용하기에 정보를 가져오거나 가공할 때는 Http가 가진 메소드를 이용함.
    => http에서 Create를 위한 메소드 = POST
    Read를 위한 메소드 = GET
    Update를 위한 메소드 = PUT | PATCH
    Delete를 위한 메소드 = DELETE


topic = topic Resource, "topics" = Resource 식별자
comments = comments Resource, "comments" = Resource 식별자

profile
https://github.com/nohjunh

0개의 댓글