이 섹션에서는 Bubble이 API 엔드포인트를 설정하여 다른 애플리케이션이 데이터베이스를 읽고 편집하고 워크플로를 실행할 수 있도록 하는 다양한 방법을 다룹니다.
특히 마지막에는 RESTful API가 기술적인 관점에서 어떻게 작동하는지 다루었습니다. 이 섹션에서는 API가 Bubble에서 어떻게 작동하는지 자세히 살펴보겠습니다.
- Bubble은 매우 유연하고 안전하며 호환되는 방식으로 다른 Bubble 애플리케이션과 외부 API 모두에 쉽게 연결할 수 있도록 설계되었습니다.
- Incoming API(들어오는 API) 요청을 받을 수 있도록 앱을 설정하는 것과 같은 대부분의 고도로 기술적인 작업은 버튼을 몇 번만 클릭하면 자동으로 수행되며 더 많은 리소스를 요구하는 전통적으로 코딩된 애플리케이션과 동일한 기능, 보안을 제공합니다.
- Bubble은 널리 사용되는 웹 표준을 준수하기 때문에 응용 프로그램을 거의 모든 다른 시스템에 연결할 수 있습니다.
Bubble API 용어 정리(중급) : 버블 Data API, Workflow API, 백엔드 워크플로우 종류 > 바로가기
(1) 버블 API란 무엇입니까?
*API란?
API는 Application Programming Interface의 약어로, 응용 프로그램 간에 데이터를 교환하거나 서비스를 요청하고 제공하기 위한 소프트웨어 인터페이스를 의미합니다. API는 소프트웨어 개발에서 다른 애플리케이션과의 상호 작용을 위한 통로로 사용됩니다.
Bubble API는 외부로부터의 Incoming API 요청(request)를 수락할 때 마다 구동됩니다. 외부의 요청에 대응해서 수행할 동작을 미리 지정하여 외부요청시 그 동작을 수행합니다.
Incoming API request는 다른 애플리케이션과 같은 외부 시스템이 Bubble 애플리케이션과의 연결을 시작할 때 발생합니다. 이 경우 앱은 해당 요청을 수락할 준비가 되어 있어야 하며 처리 방법을 알고 있어야 합니다.
1. Bubble에 대한 수신 요청은 다음 두 가지 중 하나를 수행할 수 있습니다.
1) Data API
데이터베이스에서 데이터 검색, 읽기, 생성, 수정 또는 삭제합니다. 이것은 Data API에 의해 처리됩니다.
Data API & Privacy rule (중급) : 버블의 데이터 API 활성화, 데이터 보호규칙 설정> 바로가기
2) Workflow API
앱에서 워크플로 Action실행시킵니다. 이것은 Workflow API에서 처리합니다.
Workflow API & Privacy Rule (중급) : 워크플로 API 활성화, privacy rule 무시 설정 > 바로가기
2. 보안: Authentication
client가 당신의 app의 서버에 접속 시도를 할 때, 당신은 그것들의 보안을 요구할 수 있다.
보안은 그들이 당신의 앱에 접속하기 위해서 그들이 누군지를 정의하는 것입니다.
Authentication (중급) : API 인증 bearer token, 인증없이 접속, 사용자 인증, 관리자 인증 > 바로가기
3. 웹훅 : webhook
특정 이벤트 (예: 결제 성공 혹은 실패)에 대한 응답으로 앱에 수행되는 호출을 종종 웹훅이라고 합니다.
API의 개념 (초급) : 일반적인 API 개념 소개 > 바로가기
(2) Bubble API 및 Privacy rule(개인 정보 보호 규칙)
개인 정보 보호 규칙이 Data API 및 Workflow API 모두에 어떤 영향을 미치는지 살펴보겠습니다.
모든 API 클라이언트뿐만 아니라 각각 기존 사용자로 인증할 수 있는 개별 API 클라이언트의 액세스 수준을 관리하는 Privacy rule(개인정보 보호 규칙)을 설정할 수 있습니다.
Privacy rule(개인 정보 보호 규칙)은 특정 기준과 일치하는 사용자가 앱의 각 데이터 유형에 대해 갖는 액세스 종류를 결정합니다.
- 단순히 다른 사용자로 앱의 API에 액세스하려고 시도하는 모든 외부 시스템(클라이언트)을 볼 수 있습니다.
- Bubble은 이를 로그인 여부에 관계없이 사용자로 취급하며 특정 시나리오에서는 다른 사용자 프로필과 마찬가지로 데이터를 저장할 수도 있습니다.
- Data API 및 Workflow API는 모두 앱의 개인 정보 보호 규칙을 준수합니다. 그렇기 때문에 올바르게 설정하는 것이 API를 구성하는 데 필수적인 부분입니다.
Data API & Privacy rule (중급) : 버블의 데이터 API 활성화, 데이터 보호규칙 설정 > 바로가기
Workflow API & Privacy Rule (중급) : 워크플로 API 활성화, privacy rule 무시 설정 > 바로가기
(3) Swagger Specification : 스웨거 양식
1. Swagger 란?
- Swagger는 본질적으로 API가 자신을 설명하는 방법이므로 다른 시스템이 API의 구조와 사용 가능한 쿼리를 이해할 수 있게 도와줍니다.
: 본질적으로 API가 레스토랑인 경우 Swagger 파일은 메뉴입니다.
- 예를 들어 앱에 성공적으로 연결하기 위해 외부 앱의 개발자는 다음과 같은 질문을 가질 수 있습니다.
- 앱으로 인증하는 방법은?
- 어떤 종류의 call이 가능합니까?
- 어떤 종류의 parameter가 있습니까?
- response는 어떻게 생겼습니까?
Swagger 양식은 인간과 컴퓨터가 모두 이해할 수 있는 방식으로 이와 같은 질문에 답하는 언어를 말합니다. Bubble은 JSON 형식을 사용하여 Swagger 파일을 생성합니다.
2. Swagger 파일은 어떻게 생성합니까?
- Swagger 파일은 Bubble에 의해 자동으로 생성되며 앱의 설정에 따라 업데이트되는 방식으로써 동적입니다.
- Swagger 파일은 Bubble API가 활성화되면 기본적으로 활성화되지만 메인패널 좌측의 Settings - API에서 숨기도록 선택할 수 있습니다.
3. 내 앱의 Swagger 파일을 어떻게 찾습니까?
* 메인 PANEL 의 좌측 메뉴 > Settings 이동 > API 이동 > Public API endpoints
1) 파일을 사용할 수 있을 때마다 URL이 자동으로 생성됩니다.
(예시) https://appname.bubbleapps.io/api/1.1/meta/swagger.json
2) 또는 도메인에 연결된 경우:
(예시) https://당신의도매인.com/api/1.1/meta/swagger.json
4. Swagger에 대한 FAQ
1) 내 API에 대한 모든 정보를 노출하는 것은 위험하지 않습니까? :
- 이 질문에 답하려면 먼저 앱의 API에 대한 정보를 숨긴다고 해서 앱이 안전하다는 의미는 아니라는 점을 인지하는 것이 중요합니다. 문서의 난독화(obfuscation)는 보안이 아닙니다.
- 따라서 Swagger 파일이 엔드포인트를 노출하더라도 해커는 엔드포인트를 재구성할 수 있습니다. 보안은 API에 대한 정보를 숨기려고 시도하는 것이 아니라 권한 부여 및 개인정보 보호 규칙을 사용하여 수행됩니다.
2) Swagger API 설명서를 변경할 수 있습니까? : 예, 아니오
- 파일을 직접 편집할 수는 없지만 앱의 설정 및 구조와 관련된 모든 변경 사항이 파일에 즉시 반영됩니다.
- 이런 것을 변경하려고 직접 추적할 필요가 없습니다.
3) 내 앱의 개발(development) 및 라이브(Live) 버전에 대한 별도의 파일이 있습니까? : 예
- 서로 다른 두 버전에 대해 별도의 URL과 파일이 있습니다.
- 외부 응용 프로그램이 올바른 파일을 가리키도록 해야 합니다. 또한 앱의 개발 버전에서 변경한 사항은 앱이 배포될 때까지 라이브 Swagger 파일에 반영되지 않는다는 점에 유의하십시오.