3장. API Cryostat를 사용하여 API 정의 설계 및 개발
API Builder를 사용하여 OpenAPI 3(또는 2) 사양을 준수하는 REST API 정의를 설계 및 개발할 수 있습니다.
사전 요구 사항
- OpenShift 프로젝트를 생성하셨습니다.
- OpenShift 프로젝트에 API Creator 서비스를 추가했습니다.
3.1. API Cryostat에서 REST API 정의 생성
다음 단계에서는 REST API 정의를 생성하는 방법을 설명합니다.
- OpenShift에서 Fuse Online 또는 Fuse에서 API Builder 사용자 인터페이스에 액세스할 수 있습니다.
- OpenShift의 Fuse만의 경우 API Builder는 상태 비저장이므로 OpenShift 세션 간에 작업을 저장하지 않습니다. 세션 간에 API를 로컬 파일 시스템에 저장해야 합니다.
예제 정보
작업 관리 API 예제에서는 영업 컨설턴트가 고객 연락처와 상호 작용할 때 필요한 작업을 추적하는 데 사용할 수 있는 간단한 API를 시뮬레이션합니다. 예를 들어 "to-do" 작업은 "새 연락처에 대한 계정을 생성"하거나 "기존 연락처에 대한 주문 배치"일 수 있습니다. 작업 관리 API 예제를 구현하려면 두 개의 경로(하나는 작업용 및 특정 작업용 경로)를 생성합니다. 그런 다음 작업을 생성하고, 모든 작업 또는 특정 작업을 검색하고, 작업을 업데이트하고, 작업을 삭제하는 작업을 정의합니다.
사전 요구 사항
-
생성하려는 API의 끝점을 알고 있습니다. 작업 관리 API 예제의 경우
/todo
및/todo/{id}
의 끝점이 두 개 있습니다. - OpenShift의 Fuse만 사용하면 OpenShift 프로젝트를 생성하고 OpenShift 프로젝트에 API Creator 서비스를 추가했습니다.
프로세스
Fuse Online을 사용하는 경우 2 단계로 건너뜁니다.
OpenShift에서 Fuse를 사용하는 경우:
- OpenShift 웹 콘솔에 로그인한 다음 API Creator가 포함된 프로젝트를 엽니다.
OpenShift 4.x의 경우 Topology 를 선택한 다음 apicurito-service-ui 아이콘에서 URL 링크를 클릭합니다.
OpenShift 3.11의 경우 애플리케이션 목록에서 APIFilter의 URL을 클릭합니다(예: https://apidesigner-myproject.192.168.64.43.nip.io)
.
API의 새 브라우저 창 또는 탭이 열립니다.
참고API Builder는 Apicurio Studio 오픈 소스 프로젝트 의 "조명" 버전이므로 "Apicurio"가 API의 Cryostat 인터페이스에 표시됩니다.
New API 를 클릭합니다. 새 API 페이지가 열립니다.
기본적으로 API Builder는 OpenAPI 3 사양을 사용합니다. OpenAPI 2 사양을 사용하려면 새 API 버튼 옆에 있는 화살표를 클릭한 다음 OpenAPI 2 를 선택합니다.
참고OpenAPI 2 사양을 기반으로 API를 여는 경우, API desktop의 Convert를 OpenAPI 3 옵션으로 사용하여 API 를 변환하여 OpenAPI 3 사양을 준수할 수 있습니다.
API 이름을 변경하려면 다음을 수행합니다.
- 커서를 이름 위에 마우스로 이동한 다음 표시되는 편집 아이콘( )을 클릭합니다.
- 이름을 편집합니다. 예를 들어 Task API 를 입력합니다.
- 확인 표시 아이콘을 클릭하여 이름 변경을 확인합니다.
선택적으로 다음을 수행합니다.
- 버전 번호 및 설명을 입력합니다.
- 연락처 정보를 추가합니다(이름, 이메일 주소, URL).
- 라이센스를 선택합니다.
- 태그를 정의합니다.
- 하나 이상의 서버를 정의합니다.
- 보안 스키마를 구성합니다.
- 보안 요구 사항을 지정합니다.
API의 각 개별 끝점에 대한 상대 경로를 정의합니다. 필드 이름은 슬래시(/)로 시작해야 합니다.
작업 관리 API 예제에 대해 다음 두 경로를 생성합니다.
-
작업 경로:
/todo
ID별 특정 작업의 경로:
/todo/{id}
-
작업 경로:
경로 매개변수 유형을 지정합니다.
예제
id
매개변수의 경우:경로 목록에서
/todo/{id}
를 클릭합니다.id 매개변수는 PATH PARAMETERS 섹션에 표시됩니다.
- 생성을 클릭합니다.
- description: 찾을 작업의 ID를 입력합니다.
유형에 대해 정수를 32bit 정수 로 선택합니다.
데이터 유형 섹션에서 API에 재사용 가능한 유형을 정의합니다.
- 데이터 유형 추가를 클릭합니다.
- 데이터 유형 추가 대화 상자에서 이름을 입력합니다. 작업 관리 API 예제에 대해 Todo 를 입력합니다.
선택적으로 API window가 데이터 형식의 스키마를 생성하는 예제를 제공할 수 있습니다. 그런 다음 생성된 스키마를 편집할 수 있습니다.
작업 관리 API 예제의 경우 다음 JSON 예제로 시작합니다.
{ "id": 1, "task": "my task", "completed": false }
- 선택적으로 데이터 유형으로 REST 리소스를 생성하도록 선택할 수 있습니다.
저장을 클릭합니다. 예제를 제공한 경우 API window는 다음 예제에서 스키마를 생성합니다.
- 선택적으로 스키마 속성 편집을 추가하고 새 속성을 추가할 수 있습니다.Optionally, you can add edit the schema properties and add new ones.
Task Management API 예제의 경우 문자열 형식의 task 라는 하나의 속성을 사용하여 Task 라는 다른 데이터 유형을 생성합니다.
각 경로에 대해 작업(GET, PUT, POST, DELETE, OPTIONS, HEAD 또는 PATCH)을 정의합니다.
작업 관리 API 예제의 경우 다음 표에 설명된 대로 작업을 정의합니다.
표 3.1. 작업 관리 API 작업 경로 작업 설명 요청 본문 응답 /todo
POST
새 작업을 생성합니다.
미디어 유형:
애플리케이션/json
데이터 유형: Task상태 코드: 201 설명: 생성된 작업
응답 본문: 미디어 유형:
application/json
데이터 유형: Todo
/todo
GET
모든 작업을 가져옵니다.
해당 없음
- 상태 코드: 200 설명: 작업 목록
/todo/{id}
GET
ID로 작업을 가져옵니다.
해당 없음
-
상태 코드: 200 설명: ID 응답 본문에 대해 발견된 작업: 미디어 유형:
application/json
데이터 유형: Task - 상태 코드: 404 description: no task with provided identifier found.
/todo/{id}
PUT
작업을 ID로 업데이트합니다.
요청 본문 유형: Task
- 상태 코드: 200 설명: 완료됨
- 상태 코드: 400 설명: 작업이 업데이트되지 않음
/todo/{id}
DELETE
ID로 작업을 삭제합니다.
해당 없음
- 상태 코드: 200 설명: 작업이 삭제됨
- 상태 코드: 400 설명: 작업이 삭제되지 않음
- API Splunk의 유효성 검사 문제에 설명된 대로 모든 문제를 해결합니다.
OpenShift의 Fuse 전용의 경우 Save As 를 클릭한 다음 JSON 또는 YAML 형식을 선택하여 API 사양을 저장합니다.
JSON 또는 YAML 파일이 로컬 다운로드 폴더에 다운로드됩니다. 기본 파일 이름은 적절한 파일 확장자가 있는
openapi-spec
입니다.
추가 리소스
- OpenAPI 사양에 대한 자세한 내용은 https://github.com/OAI/OpenAPI-Specification로 이동하십시오.