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 식별자