Redocly CLI에 대한 종합 튜토리얼에 오신 것을 환영합니다! Redocly CLI는 OpenAPI 및 Swagger 정의를 위한 강력한 올인원 명령줄 도구입니다. 전체 API 수명 주기 동안 API 설명을 구축, 관리 및 품질 검사하는 데 도움이 됩니다. 개발자, 기술 문서 작성자 또는 API 제품 관리자 등 누구에게나 유용한 도구입니다.
본 튜토리얼은 Redocly CLI를 심층적으로 다루며, 초보자부터 숙련된 사용자까지 안내하는 것을 목표로 합니다. 설치부터 사용자 정의 린팅 규칙 및 CI/CD 통합과 같은 고급 기능까지 모든 것을 다룰 것입니다. 이 튜토리얼을 마치면 Redocly CLI를 일상적인 작업 흐름에 통합하여 API 품질과 문서를 개선할 수 있습니다.
개발 팀이 최대한의 생산성으로 함께 작업할 수 있는 통합된 올인원 플랫폼을 원하십니까?
Apidog는 당신의 모든 요구를 충족하며, Postman을 훨씬 저렴한 가격으로 대체합니다!
Redocly CLI란 무엇입니까?
공식 문서에 명시된 바와 같이, Redocly CLI는 당신의 "올인원 OpenAPI 유틸리티"입니다. OpenAPI 3.1, 3.0, 2.0 (레거시 Swagger), AsyncAPI 등을 지원합니다. 다음과 같은 작업에 도움이 되도록 설계되었습니다.
- API 거버넌스: 강력하고 구성 가능한 린팅을 통해 API 설계 표준 및 일관성을 적용합니다.
- API 문서: Redoc을 사용하여 아름답고 상호 작용하는 API 참조 문서를 생성합니다.
- 워크플로우 개선: 다중 파일 API 정의를 번들링하고, 큰 정의를 작은 파일로 분할하며, API에 대한 유용한 통계를 얻습니다.
이 도구는 성능과 사용자 경험을 염두에 두고 구축되었으며, 빠른 실행과 사람이 읽기 쉬운 오류 메시지를 제공합니다.
Redocly CLI를 사용하는 이유
오늘날의 API 우선 세상에서 고품질 API 정의를 유지하는 것은 매우 중요합니다. Redocly CLI는 다음을 통해 이를 달성하는 데 도움이 됩니다.
- 품질 검사 자동화: 린팅 기능은 일련의 규칙에 대해 API 정의를 확인하는 프로세스를 자동화하여 일관성을 보장하고 일반적인 오류를 방지합니다.
- 협업 개선: 대규모 API 정의를 여러 파일로 분할할 수 있게 함으로써 팀이 API의 다른 부분에서 동시에 작업하기가 더 쉬워집니다.
bundle
명령은 모든 것을 다시 하나로 모읍니다. - 개발자 경험 향상:
build-docs
로 생성된 고품질의 대화형 문서는 개발자가 API를 더 쉽게 이해하고 사용할 수 있도록 합니다. - 도구 체인과의 통합: Redocly CLI는 CI/CD 파이프라인에 쉽게 통합될 수 있어 API 품질을 자동화된 워크플로우의 일부로 만듭니다.
이 튜토리얼에서 다룰 내용
이 튜토리얼은 Redocly CLI를 마스터하기 위한 단계별 가이드를 제공하도록 구성되어 있습니다. 다음 내용을 다룰 것입니다.
- 챕터 1: 시작하기: 필수 조건을 다루고 Redocly CLI를 설치하고 실행하는 방법을 보여줍니다.
- 챕터 2: 핵심 명령 및 기능: 이 챕터는 가장 중요한 명령인
lint
,bundle
,split
,build-docs
,stats
에 대한 심층 분석입니다. - 챕터 3: 고급 주제:
redocly.yaml
구성 파일과 Redocly CLI를 GitHub Actions 워크플로우에 통합하는 방법을 살펴보겠습니다. - 챕터 4: 실용적인 예제: 다중 파일 API 정의 생성부터 문서 생성까지 완전한 실제 워크플로우를 단계별로 살펴보겠습니다.
시작해 봅시다!
챕터 1: Redocly CLI 시작하기
이 챕터는 설치부터 첫 번째 명령 실행까지 Redocly CLI 사용의 첫 단계를 안내합니다.
필수 조건
시작하기 전에 시스템에 다음이 설치되어 있는지 확인하십시오.
- Node.js 및 npm: Redocly CLI는 Node.js 애플리케이션입니다. Node.js (버전 22.12.0 이상) 및 npm (버전 10.9.2 이상)이 설치되어 있어야 합니다. 터미널에서
node -v
및npm -v
를 실행하여 버전을 확인할 수 있습니다.
설치
Redocly CLI를 설치하고 사용하는 데는 몇 가지 옵션이 있습니다. 필요에 가장 적합한 옵션을 선택하십시오.
npx
사용 (빠른 사용 권장)
전역 설치 없이 Redocly CLI를 사용해 보고 싶다면 npm 패키지 실행기인 npx
를 사용할 수 있습니다. 이 명령은 Redocly CLI의 최신 버전을 다운로드하여 실행합니다.
npx @redocly/cli@latest --version
어떤 redocly
명령이든 사용하려면 앞에 npx @redocly/cli@latest
를 붙이기만 하면 됩니다. 예를 들어:
npx @redocly/cli@latest lint openapi.yaml
이는 CI/CD 환경에서 Redocly CLI를 사용하거나 시스템을 전역 패키지로 어지럽히고 싶지 않을 때 좋은 방법입니다.
npm
을 사용한 전역 설치
정기적으로 사용하는 경우 전역 설치가 더 편리합니다. 이렇게 하면 터미널에서 redocly
명령을 직접 사용할 수 있습니다.
npm install -g @redocly/cli@latest
설치 후 다음 명령으로 버전을 확인하여 설치를 확인할 수 있습니다.
redocly --version
이제 다음과 같이 명령을 실행할 수 있습니다.
redocly lint openapi.yaml
Docker 사용
Docker를 사용하려는 경우 Redocly는 미리 빌드된 Docker 이미지를 제공합니다. 이는 도구를 로컬 환경과 격리하는 데 유용합니다.
먼저 Docker Hub에서 이미지를 가져옵니다.
docker pull redocly/cli
명령을 실행하려면 현재 작업 디렉터리(API 파일이 있는 곳)를 Docker 컨테이너에 볼륨으로 마운트해야 합니다.
docker run --rm -v $PWD:/spec redocly/cli lint /spec/openapi.yaml
이 명령에서 $PWD
는 현재 디렉터리를 나타내며, 이는 컨테이너 내부의 /spec
디렉터리에 마운트됩니다. 그런 다음 /spec
경로를 사용하여 파일을 참조해야 합니다.
기본 명령 구조
Redocly CLI 사용의 기본 구조는 다음과 같습니다.
redocly [command] [arguments] [options]
command
: 수행하려는 작업 (예:lint
,bundle
).arguments
: 일반적으로 루트 API 정의 파일의 경로 (예:openapi.yaml
).options
: 명령의 동작을 사용자 정의하는 플래그 (예:-output
,-format
).
--help
옵션을 사용하여 특정 명령에 대한 도움말을 언제든지 얻을 수 있습니다.
redocly lint --help
이제 Redocly CLI가 설치되었고 기본 명령 구조를 이해했으니, 강력한 기능을 살펴보겠습니다.
챕터 2: 핵심 명령 및 기능
이 챕터는 Redocly CLI의 핵심 명령을 다룹니다. API 정의를 린트하고, 관리하고, 문서화하고, 분석하는 방법을 살펴보겠습니다. 이 챕터의 예제에서는 간단한 openapi.yaml
파일을 사용합니다.
다음 내용을 포함하는 openapi.yaml
파일을 생성해 봅시다.
openapi: 3.0.0
info:
title: Simple Pet Store API
version: 1.0.0
description: A simple API to manage pets.
servers:
- url: <http://localhost:8080/api>
paths:
/pets:
get:
summary: List all pets
operationId: listPets
responses:
'200':
description: An array of pets.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
components:
schemas:
Pet:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
tag:
type: string
섹션 2.1: API 설명 린팅 (lint
)
API 린팅은 API 정의 파일의 일관성, 정확성 및 스타일을 확인하는 프로세스입니다. API 설계 지침을 적용하고 프로덕션에 도달하기 전에 잠재적인 문제를 포착하는 데 도움이 됩니다.
기본 사용법
lint
명령은 일련의 규칙에 대해 API 정의를 확인하는 데 사용됩니다.
redocly lint openapi.yaml
기본적으로 redocly lint
는 recommended
규칙 세트를 사용합니다. openapi.yaml
에 문제가 있는 경우 출력은 이를 자세히 설명합니다. 예제 파일의 경우 출력은 다음과 같아야 합니다.
validating openapi.yaml...
openapi.yaml: validated in 58ms
Woohoo! Your API description is valid. 🎉
규칙 구성
Redocly CLI는 세 가지 내장 구성 가능한 규칙 세트를 제공합니다.
minimal
: 주로 사양 유효성을 확인하는 작은 규칙 세트입니다.recommended
: 일반적인 모범 사례를 적용하는 더 포괄적인 규칙 세트입니다. 이것이 기본값입니다.recommended-strict
: recommended 규칙 세트의 더 엄격한 버전입니다.
--extends
옵션으로 규칙 세트를 지정할 수 있습니다.
redocly lint openapi.yaml --extends=minimal
redocly.yaml
구성 파일에서 자체 사용자 정의 규칙 세트를 만들 수도 있습니다. 이는 챕터 3에서 다룰 것입니다.
출력 형식
lint
명령은 --format
옵션을 사용하여 다양한 출력 형식을 지원하며, 이는 다른 도구와 통합하는 데 매우 유용합니다.
codeframe
(기본값): 각 문제에 대한 코드 컨텍스트를 보여줍니다.stylish
: 더 간결하고 사람이 읽기 쉬운 형식입니다.json
: 모든 문제가 포함된 JSON 객체를 출력하여 기계 처리에 적합합니다.checkstyle
: Checkstyle과 호환되는 XML 형식입니다.github-actions
: GitHub Actions 주석과 통합되는 형식입니다.markdown
: 결과의 Markdown 테이블로, 보고서에 적합합니다.
stylish
형식을 사용하는 예:
redocly lint openapi.yaml --format=stylish
문제 무시
때로는 특정 문제를 무시해야 할 수도 있습니다. 오류 및 경고를 억제하기 위해 .redocly.lint-ignore.yaml
파일을 생성할 수 있습니다.
redocly lint openapi.yaml --generate-ignore-file
이 명령은 무시 파일을 생성합니다. lint
를 다시 실행하면 이 파일에 나열된 문제가 무시됩니다. 이를 통해 린팅 프로세스를 세밀하게 제어할 수 있습니다.
섹션 2.2: bundle
및 split
으로 API 설명 관리
API가 커짐에 따라 단일의 모놀리식 OpenAPI 파일을 관리하는 것은 번거로워집니다. Redocly CLI는 이를 돕기 위해 split
및 bundle
두 가지 명령을 제공합니다.
대규모 OpenAPI 파일 분할 (split
)
split
명령을 사용하면 대규모 API 정의 파일을 더 관리하기 쉬운 다중 파일 구조로 분할할 수 있습니다. 구성 요소, 경로 및 예제를 별도의 파일 및 폴더로 추출합니다.
openapi.yaml
을 분할해 봅시다.
redocly split openapi.yaml --outDir=split-api
이 명령은 다음과 같은 구조의 split-api
디렉터리를 생성합니다.
split-api/
├── components/
│ └── schemas/
│ └── Pet.yaml
├── paths/
│ └── pets.yaml
└── openapi.yaml
split-api
의 새로운 openapi.yaml
은 이제 $ref
를 사용하여 외부 파일에 링크합니다.
# split-api/openapi.yaml
openapi: 3.0.0
info:
title: Simple Pet Store API
# ...
paths:
/pets:
$ref: ./paths/pets.yaml
components:
schemas:
Pet:
$ref: ./components/schemas/Pet.yaml
이렇게 하면 API의 다른 부분을 훨씬 쉽게 관리할 수 있습니다.
여러 파일 번들링 (bundle
)
bundle
명령은 split
의 반대 작업을 수행합니다. 루트 API 정의 파일을 가져와 모든 로컬 $ref
를 해결하여 단일 자체 포함 파일을 생성합니다. 이는 다중 파일 정의를 지원하지 않는 도구에 유용합니다.
분할된 API를 단일 파일로 다시 번들링해 봅시다.
redocly bundle split-api/openapi.yaml --output bundled-api.yaml
bundled-api.yaml
은 원래 openapi.yaml
과 동일한 내용을 가질 것입니다.
역참조
bundle
명령은 모든 $ref
(원격 포함)가 해결되고 해당 내용으로 대체된 완전히 역참조된 파일을 생성할 수도 있습니다.
redocly bundle split-api/openapi.yaml --output dereferenced-api.yaml --dereferenced
이는 유용할 수 있지만, 파일이 훨씬 커질 수 있고 순환 참조가 JSON 출력에 문제를 일으킬 수 있다는 점에 유의하십시오.
섹션 2.3: API 문서 생성 (build-docs
)
Redocly CLI의 가장 강력한 기능 중 하나는 오픈 소스 Redoc 엔진을 사용하여 아름답고 상호 작용하는 API 참조 문서를 생성하는 기능입니다.
기본 사용법
문서를 생성하려면 build-docs
명령을 사용합니다.
redocly build-docs openapi.yaml
이렇게 하면 현재 디렉터리에 redoc-static.html
파일이 생성됩니다. 브라우저에서 열어 문서를 확인하십시오.
-o
또는 --output
옵션으로 다른 출력 파일을 지정할 수 있습니다.
redocly build-docs openapi.yaml -o my-api-docs.html
출력 사용자 정의
--theme.openapi
옵션을 사용하여 문서의 모양과 느낌을 사용자 정의할 수 있습니다. 이를 통해 색상, 글꼴을 변경하고 검색 바와 같은 UI의 일부를 비활성화할 수도 있습니다.
예를 들어, 검색 바를 비활성화하려면:
redocly build-docs openapi.yaml --theme.openapi.disableSearch
사용 가능한 모든 테마 옵션은 공식 Redocly 문서에서 찾을 수 있습니다.
더 많은 제어를 위해 자체 Handlebars 템플릿을 제공하여 문서를 렌더링할 수 있습니다. 이는 HTML 출력을 완전히 사용자 정의할 수 있는 고급 기능입니다.
섹션 2.4: API 통계 가져오기 (stats
)
stats
명령은 경로, 작업, 스키마 등의 수와 같은 API 정의에 대한 유용한 메트릭을 제공합니다.
통계 가져오는 방법
API에 대한 통계를 얻으려면 간단히 다음을 실행합니다.
redocly stats openapi.yaml
기본 출력은 stylish
형식입니다.
Document: openapi.yaml stats:
🚗 References: 1
📦 External Documents: 0
📈 Schemas: 1
👉 Parameters: 0
🔗 Links: 0
🔀 Path Items: 1
👷 Operations: 1
🔖 Tags: 0
openapi.yaml: stats processed in 22ms
다양한 형식
lint
명령과 마찬가지로 stats
는 --format
옵션으로 다양한 출력 형식을 지원합니다. json
및 markdown
형식은 특히 유용합니다.
-format=json
:
redocly stats openapi.yaml --format=json
이는 통계를 다른 도구나 대시보드로 가져오는 데 유용합니다.
-format=markdown
:
redocly stats openapi.yaml --format=markdown
이는 Markdown 테이블을 생성하며, 보고서나 다음 챕터에서 볼 GitHub Actions 요약에 사용하기에 적합합니다.
챕터 3: 고급 주제
이 챕터에서는 강력한 구성 파일과 CI/CD 파이프라인과의 통합을 포함하여 Redocly CLI의 일부 고급 기능에 대해 자세히 알아보겠습니다.
구성 파일 (redocly.yaml
)
명령줄에서 Redocly CLI를 완전히 사용할 수 있지만, redocly.yaml
구성 파일을 사용하면 구성을 한 곳에 저장하여 명령을 더 짧게 만들고 구성을 재사용할 수 있습니다.
프로젝트 루트에 redocly.yaml
파일을 생성해 봅시다.
# redocly.yaml
# This is a sample configuration file.
# For a full list of options, see the Redocly documentation.
apis:
main:
root: openapi.yaml
lint:
extends:
- recommended
rules:
# You can customize rules here.
# For example, make sure all operations have a summary.
operation-summary: error
구성 파일 구조
apis
: 이 섹션에서는 API 정의에 대한 별칭을 정의할 수 있습니다. 위 예제에서는openapi.yaml
파일에 대한main
별칭을 만들었습니다.lint
: 이 섹션에는lint
명령에 대한 구성이 포함됩니다. 확장할 규칙 세트를 지정하고 개별 규칙을 사용자 정의할 수 있습니다.- 기타 섹션: API 변환을 위한 데코레이터와 같이 Redocly의 다른 부분도 구성할 수 있습니다.
API 별칭 사용
apis
섹션이 구성되면 이제 명령에서 파일 경로 대신 main
별칭을 사용할 수 있습니다.
redocly lint main
redocly stats main
redocly build-docs main
이는 프로젝트에 여러 API가 있을 때 특히 유용합니다. 인자 없이 redocly lint
를 실행하면 apis
섹션에 정의된 모든 API를 린트합니다.
지속적 통합 (CI)
Redocly CLI를 CI/CD 파이프라인에 통합하는 것은 API 품질 검사를 자동화하는 환상적인 방법입니다. GitHub Actions와 함께 사용하는 방법의 예는 다음과 같습니다.
.github/workflows/redocly.yaml
파일을 생성합니다.
name: Redocly CLI Checks
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
lint-and-stats:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '16'
- name: Install Redocly CLI
run: npm install -g @redocly/cli@latest
- name: Lint API definition
run: redocly lint openapi.yaml --format=github-actions
- name: Get API stats
run: redocly stats openapi.yaml --format=markdown >> $GITHUB_STEP_SUMMARY
이 GitHub Actions 워크플로우는 다음을 수행합니다.
main
브랜치에 대한 모든 푸시 및 풀 리퀘스트에서 트리거됩니다.- 코드를 체크아웃합니다.
- Node.js 및 Redocly CLI를 설치합니다.
github-actions
형식으로lint
명령을 실행합니다. 이렇게 하면 풀 리퀘스트에 문제가 자동으로 주석으로 표시됩니다.markdown
형식으로stats
명령을 실행하고 출력을 작업 요약에 추가하여 실행할 때마다 좋은 보고서를 제공합니다.
이는 API 정의가 항상 좋은 상태를 유지하도록 보장하는 강력한 방법입니다.
챕터 4: 실용적인 예제: 완전한 워크플로우
이 마지막 챕터에서는 배운 모든 것을 종합하여 완전하고 실용적인 워크플로우를 단계별로 살펴보겠습니다. 다음을 수행할 것입니다.
- 다중 파일 API 정의로 프로젝트 구조를 생성합니다.
redocly.yaml
구성 파일을 생성합니다.- 사용자 정의 구성을 사용하여 API 정의를 린트합니다.
- API를 단일 파일로 번들링합니다.
- API 문서를 생성합니다.
1. 프로젝트 설정
프로젝트를 위한 새 디렉터리를 만들고 파일 구조를 설정해 봅시다.
mkdir redocly-petstore
cd redocly-petstore
mkdir -p openapi/components/schemas openapi/paths
이제 분할된 API 파일을 만들어 봅시다.
openapi/components/schemas/Pet.yaml
:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
tag:
type: string
openapi/paths/pets.yaml
:
get:
summary: List all pets
operationId: listPets
responses:
'200':
description: An array of pets.
content:
application/json:
schema:
type: array
items:
$ref: ../components/schemas/Pet.yaml
openapi/root.yaml
(우리의 주요 진입점):
openapi: 3.0.0
info:
title: Petstore API
version: 1.0.0
description: A professional API for managing pets.
servers:
- url: <https://api.petstore.com/v1>
paths:
/pets:
$ref: ./paths/pets.yaml
2. redocly.yaml
생성
이제 redocly-petstore
디렉터리의 루트에 구성 파일을 만들어 봅시다.
redocly.yaml
:
apis:
petstore@v1:
root: openapi/root.yaml
lint:
extends:
- recommended
rules:
operation-summary: error
no-path-trailing-slash: warn
tag-description: error
이 구성에서 API에 대한 petstore@v1
별칭을 정의하고 일부 사용자 정의 린팅 규칙을 추가했습니다.
3. API 린트
이제 새 구성을 사용하여 API를 린트해 봅시다.
redocly lint petstore@v1
API가 새 규칙을 모두 준수하지 않기 때문에 일부 오류와 경고가 표시될 것입니다. 예를 들어, 설명이 있는 태그가 없습니다. 이는 자체 API 스타일 가이드를 적용하는 방법을 보여줍니다.
4. API 번들링
다음으로, 다중 파일 API를 단일 배포 가능한 파일로 번들링해 봅시다.
redocly bundle petstore@v1 -o dist/petstore.yaml
이렇게 하면 완전히 해결된 API 정의가 포함된 petstore.yaml
파일이 있는 dist
디렉터리가 생성됩니다.
5. 문서 생성
마지막으로 API 문서를 생성해 봅시다.
redocly build-docs petstore@v1 -o dist/petstore-docs.html
이렇게 하면 dist/petstore-docs.html
이 생성됩니다. 브라우저에서 이 파일을 열어 아름답고 상호 작용하는 API 문서를 확인하십시오.
이제 완성되었습니다! 구조화된 다중 파일 API 정의부터 번들링된 파일 및 전문 문서까지, Redocly CLI로 관리되는 완전한 워크플로우입니다.
결론
이 튜토리얼에서는 Redocly CLI를 심층적으로 살펴보았습니다. 설치 및 핵심 명령의 기본부터 시작하여 구성 및 CI 통합과 같은 고급 주제로 이동했으며, 마지막으로 완전하고 실용적인 워크플로우를 단계별로 살펴보았습니다.
이제 Redocly CLI를 사용하여 다음을 수행하는 방법에 대한 확실한 이해를 갖게 되었을 것입니다.
- API 정의를 린트하여 품질 및 일관성을 적용합니다.
bundle
및split
으로 API 파일을 관리합니다.build-docs
로 아름답고 상호 작용하는 API 문서를 생성합니다.stats
로 API를 분석합니다.- CI/CD 파이프라인에서 이 모든 것을 자동화합니다.
Redocly CLI는 API 개발 워크플로우를 크게 개선할 수 있는 다재다능하고 강력한 도구입니다. 기능을 더 자세히 살펴보고 프로젝트에 통합해 보시기 바랍니다.
추가 자료
- 공식 Redocly CLI 문서: https://redocly.com/docs/cli/
- Redocly GitHub 저장소: https://github.com/Redocly/redocly-cli
- OpenAPI 사양: https://spec.openapis.org/oas/v3.1.0
이 튜토리얼을 따라주셔서 감사합니다. 즐거운 API 구축 되세요!
개발 팀이 최대한의 생산성으로 함께 작업할 수 있는 통합된 올인원 플랫폼을 원하십니까?
Apidog는 당신의 모든 요구를 충족하며, Postman을 훨씬 저렴한 가격으로 대체합니다!