[Tistory] [백엔드] 백엔드에서의 API란?

원글 페이지 : 바로가기

API (Application Programming Interface) 어떤 웹 서비스를 개발할 때 프로그램이 동작되어야하고, 서로 통신하는 규칙을 정하고 이를 기반으로 요청-응답이 이루어질 수 있도록 정해놓은 규칙이다. 요약하자면 개발자들 간에 정해놓은 통신 규칙 이다. 예를 들어, 상요자가 웹 페이지에 로그인을 한다고 가정해보자. 프론트엔드 개발자는 로그인 화면에서 계정 입력 칸, 로그인 버튼, 아이디/비밀번호 찾기 버튼 등을 구현한다. 그리고 사용자가 버튼을 눌렀을 때 서버에 ‘회원가입 시에 입력한 계정 정보랑 비교해서 일치하면 로그인 시켜줘.’라는 요청을 보낸다. 먼저 사용자가 웹 페이지에 로그인을 한다고 가정해 봅시다. 그럼 백엔드 개발자는 회원가입 계정과 로그인 계정을 비교하여 일치하면 로그인, 일치하지 않으면 오류 메시지를 띄우는 기능을 개발하여 응답한다. REST (REpresentational State Transfer) 요청-응답을 이름으로 구분하여 통신하도록 정해진 규칙 기본적으로 HTTP를 기반으로 만들어졌기 때문에, HTTP URL을 통해 자원을 명시하고, HTTP method( POST, GET, PUT, DELETE)를 통해 해당 자우너에 대한 CRUD를 적용하게 해줌 자원 기반의 구조 설계의 중심에 resource가 있고 HTTP 메소드를 통해 리소스를 처리하도록 설계된 아키텍쳐 의미 웹의 모든 자원에 고유한 ID인 HTTP url을 부여해주는역할이다! 웹의 장점을 최대한 활용할 수 있는 아키텍쳐가 REST임 REST의 구성 – 자원 (Resource) URL 모든 자원에는 공의 ID가 존재하고, 이 자원은 서버에 존재한다(백엔드가 서버를 관리한다) 자우너을 구별하는 ID는 /orders/order_id/1와 같은 HTTP url임 – 행위 (Verb) – HTTP method GET, POST, PUT, DELETE – 표현 (Representation of Resource) json, xml, txt, rss 등 여러 형태로 나타낼 수 있음 클라이언트가 요청을 하면 그에 대한 응답으로 보내는 표현이다 REST API의 방식 1. HTTP URL을 통해 요청/응답 명시 · 요청 예시 : https://zero-base.co.kr/login (로그인 페이지 요청) · 응답 예시 : https://zero-base.co.kr/login/success (로그인 성공 응답)        https://zerobase.co.kr/login/fail (로그인 실패 응답) 2. HTTP Method를 통해 동작 적용 · Create  : (회원가입 시) 지금 요청 보내는 계정을 데이터베이스에 새로 넣어줘 · Read  : (로그인 시) 올바른 계정인지 데이터베이스에 저장되어 있는 회원 가입 계정을 읽어줘 · Update  : (로그인 계정 변경할 때) 데이터베이스에 저장되어 있는 계정 비밀번호를 지금 요청 보내는 비밀번호로 변경해줘 · Delete  : (회원 탈퇴 시) 데이터베이스에 저장되어 있는 이 계정 삭제해줘 이런 식으로 어떤 url로 요청을 보냈을 때, 어떤 method를 적용하고, 어떤 응답을 url로 보낼지 프론트엔드 개발자와 백엔드 개발자는 상의해서 설정을 하게 됩니다. 이 API 설계 문서를 자동화해서 편하게 기록할 수 있는 플랫폼이 있습니다. 바로 스웨거라고 하는 사이트를 이용하는 건데요. Account 관리 서비스 개발 설계 예시 위와 같이 API 설계를 설정할 수 있다 REF https://velog.io/@somday/RESTful-API-%EC%9D%B4%EB%9E%80#:~:text=REST%20API-,REST%20API%20%EB%9E%80,%EB%B0%9B%EB%8A%94%20%EB%AA%A8%EB%93%A0%20%EA%B2%83%EC%9D%84%20%EC%9D%98%EB%AF%B8%ED%95%9C%EB%8B%A4. https://zero-base.co.kr/event/media_insight_contents_BE_backend_api

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다