optic
OpenAPI linting, diffing and testing. Optic helps prevent breaking changes, publish accurate documentation and improve the design of your APIs.
파일 탐색기
최종 버전 다운로드 (.zip)- bug_report.md
- config.yml
- enhancement_request.md
- create-checksums.sh
- version-sync
- petstore.json
- release-binaries.yml
- release.yml
- test.yaml
- CODEOWNERS
- pull_request_template.md
- extensions.json
- settings.json
- yarn-4.1.1.cjs
- docker.md
- dockerhub-readme.md
- generate-openapi.md
- release.md
- .env.build.production
- json-pointer-helpers.test.ts.snap
- json-pointer-helpers.test.ts
- json-pointer-helpers.ts
- index.ts
- .gitignore
- .npmignore
- babel.config.js
- jest.config.js
- package.json
- README.md
- tsconfig.json
- headers.yaml
- pagination.yaml
- version.yaml
- 204.yaml
- 400.yaml
- 401.yaml
- 403.yaml
- 404.yaml
- 409.yaml
- 500.yaml
- common.yaml
- errors.yaml
- tag.yaml
- types.yaml
- version.yaml
- 000-baseline.yaml
- 001-ok-add-property-field.yaml
- broken-open-api.json
- empty-with-url-ref.json
- empty.json
- openapi-webhook.json
- petstore0.json
- petstore0.json.flattened-without-sourcemap.json
- petstore0.json.flattened.json
- petstore1.json
- smallpetstore0.json
- smallpetstore1.json
- todo-api-3_1.json
- circular-references-multiple-chain.yaml
- circular-references-multiple-refs.yaml
- circular-references-with-expanded-refs.yaml
- circular-references.yaml
- definitions.yaml
- external-multiple-branches.yaml
- external-multiple.yaml
- internal-multiple.yaml
- openapi.yaml
- spec.yml
- date-example.yml
- denormalize.test.ts.snap
- openapi.yaml
- parameters.yml
- in-type-array.yaml
- nested.yaml
- no-merge.yaml
- single-allof.yaml
- single-child.yaml
- openapi.yaml
- parameters.yml
- denormalize.test.ts
- denormalize.ts
- denormalizeProperty.ts
- pointer.ts
- parse-with-sourcemap.test.ts.snap
- parse-with-sourcemap.test.ts
- windows-git-pathing.test.ts
- custom-http-ref-handler.ts
- git-branch-file-resolver.ts
- insourced-dereference.ts
- insourced-yaml.ts
- openapi-sourcemap-parser.ts
- sourcemap.ts
- types.ts
- validator.test.ts.snap
- advanced-validation.test.ts
- advanced-validation.ts
- errors.ts
- log-json-pointer.ts
- openapi-versions.test.ts
- openapi-versions.ts
- validation-schemas.ts
- validator.test.ts
- validator.ts
- yaml-roundtrip.test.ts.snap
- index.ts
- yaml-roundtrip.test.ts
- yaml-roundtrip.ts
- index.ts
- react-app-env.d.ts
- .gitignore
- .npmignore
- babel.config.js
- jest.config.js
- package.json
- README.md
- tsconfig.json
- 0001.1-Oct-2021.19ca0c13463b42ce1bd34d636ae5b3a5350a8784.spec.yaml
- 0001.1-Oct-2021.19ca0c13463b42ce1bd34d636ae5b3a5350a8784.spec.yaml.flattened-without-sourcemap.json
- 0001.1-Oct-2021.19ca0c13463b42ce1bd34d636ae5b3a5350a8784.spec.yaml.flattened.json
- 0002.20-Sep-2021.b9febabad5b30b9f40e661ab288538976181c191.spec.yaml
- 0002.20-Sep-2021.b9febabad5b30b9f40e661ab288538976181c191.spec.yaml.flattened-without-sourcemap.json
- 0002.20-Sep-2021.b9febabad5b30b9f40e661ab288538976181c191.spec.yaml.flattened.json
- 0003.16-Sep-2021.56fe23a8ee00f877771d1c021da0b21c9a9eaea0.spec.yaml
- 0003.16-Sep-2021.56fe23a8ee00f877771d1c021da0b21c9a9eaea0.spec.yaml.flattened-without-sourcemap.json
- 0003.16-Sep-2021.56fe23a8ee00f877771d1c021da0b21c9a9eaea0.spec.yaml.flattened.json
- 0004.14-Sep-2021.1f10caff83376ab5f38fd24d2d45521c82aa00bb.spec.yaml
- 0004.14-Sep-2021.1f10caff83376ab5f38fd24d2d45521c82aa00bb.spec.yaml.flattened-without-sourcemap.json
- 0004.14-Sep-2021.1f10caff83376ab5f38fd24d2d45521c82aa00bb.spec.yaml.flattened.json
- 0005.7-Sep-2021.9d9ffc5d0e817da468820b7936105af564dde349.spec.yaml
- 0005.7-Sep-2021.9d9ffc5d0e817da468820b7936105af564dde349.spec.yaml.flattened-without-sourcemap.json
- 0005.7-Sep-2021.9d9ffc5d0e817da468820b7936105af564dde349.spec.yaml.flattened.json
- 0006.7-Sep-2021.e0fdd67bf73bc26b378d93ecf4d502bef02823ca.spec.yaml
- 0006.7-Sep-2021.e0fdd67bf73bc26b378d93ecf4d502bef02823ca.spec.yaml.flattened-without-sourcemap.json
- 0006.7-Sep-2021.e0fdd67bf73bc26b378d93ecf4d502bef02823ca.spec.yaml.flattened.json
- 0007.27-Aug-2021.9cf5f64b3c3ac1907884b35f7f509aff59266abb.spec.yaml
- 0007.27-Aug-2021.9cf5f64b3c3ac1907884b35f7f509aff59266abb.spec.yaml.flattened-without-sourcemap.json
- 0007.27-Aug-2021.9cf5f64b3c3ac1907884b35f7f509aff59266abb.spec.yaml.flattened.json
- 0008.18-Aug-2021.cf1155a0a237552603d90cda560e6184970c4879.spec.yaml
- 0008.18-Aug-2021.cf1155a0a237552603d90cda560e6184970c4879.spec.yaml.flattened-without-sourcemap.json
- 0008.18-Aug-2021.cf1155a0a237552603d90cda560e6184970c4879.spec.yaml.flattened.json
- 0009.16-Jul-2021.2c662df3651293281df8e55a5b2d0d77fe89a25d.spec.yaml
- 0009.16-Jul-2021.2c662df3651293281df8e55a5b2d0d77fe89a25d.spec.yaml.flattened-without-sourcemap.json
- 0009.16-Jul-2021.2c662df3651293281df8e55a5b2d0d77fe89a25d.spec.yaml.flattened.json
- 0010.5-Apr-2016.87e9639ddaa52f57f3fba1c704f757213c2681d5.spec.yaml
- headers.yaml
- app.yaml
- appOrg.yaml
- appWithSecret.yaml
- code-issue.yaml
- issue-summary.yaml
- org-invitation.yaml
- project.yaml
- target.yaml
- user.yaml
- issue-severity.yaml
- issue-type.yaml
- pagination.yaml
- project-id.yaml
- snapshot-id.yaml
- version.yaml
- 400.yaml
- 401.yaml
- 403.yaml
- 404.yaml
- 500.yaml
- issue-severity.yaml
- issue-type.yaml
- tag.yaml
- 400.yaml
- 401.yaml
- 403.yaml
- 404.yaml
- 500.yaml
- app.yaml
- appOrg.yaml
- appWithSecret.yaml
- code-issue.yaml
- common.yaml
- errors.yaml
- issue-severity.yaml
- issue-summary.yaml
- issue-type.yaml
- org-invitation.yaml
- pagination.yaml
- project-id.yaml
- project.yaml
- snapshot-id.yaml
- tag.yaml
- target.yaml
- user.yaml
- version.yaml
- beta.json
- experimental.json
- wip.json
- broken-open-api.json
- component-schema-examples.json
- empty.json
- operation-examples-with-partial-schemas.json
- operation-examples-without-schemas.json
- petstore0.json
- petstore0.json.flattened-without-sourcemap.json
- petstore0.json.flattened.json
- petstore1.json
- polymorphic-schemas-3_1.json
- polymorphic-schemas.json
- smallpetstore0.json
- smallpetstore1.json
- todo-api-3_1.json
- definitions.yaml
- external-multiple-branches.yaml
- external-multiple.yaml
- internal-multiple.yaml
- openapi.yaml
- compare-specs.ts
- coverage.ts
- diff.test.ts.snap
- diff.test.ts
- mock-data.ts
- openapi-matchers.test.ts
- array-identifiers.ts
- diff.ts
- openapi-matchers.ts
- petstore-base.ts
- petstore-updated.ts
- group-diffs.test.ts.snap
- json-path-utilities.test.ts.snap
- traverser.test.ts.snap
- fact-mock.ts
- group-diffs.test.ts
- json-path-utilities.test.ts
- traverser.test.ts
- openapi-traverser.test.ts.snap
- sourcemap-reader.test.ts.snap
- openapi-traverser.test.ts
- sourcemap-reader.test.ts
- openapi-traverser.ts
- sourcemap-reader.ts
- types.ts
- index.ts
- location.ts
- openApiKinds.ts
- facts-to-changelog.ts
- isType.ts
- constants.ts
- group-diff.ts
- json-path-interpreters.ts
- traverser.ts
- types.ts
- tags.test.ts
- tags.ts
- index.ts
- group-changes.test.ts.snap
- group-changes.test.ts
- changelog.ts
- compare-changes-by-path.ts
- count-changed-operations.ts
- group-changes.ts
- id.ts
- traverse-spec.ts
- truthy.ts
- errors.ts
- flat-openapi-types.ts
- index.ts
- results.ts
- types.ts
- .gitignore
- .npmignore
- babel.config.js
- jest.config.js
- package.json
- README.md
- Taskfile.yml
- tsconfig.json
- github.yml
- gitlab.yml
- smallpetstore0.json
- smallpetstore1.json
- test-spec.yml
- bundle.test.ts.snap
- capture-init.test.ts.snap
- capture.test.ts.snap
- diff-all.test.ts.snap
- diff.test.ts.snap
- history.test.ts.snap
- lint.test.ts.snap
- speccopy2.yml
- example-api-v0.json
- not-added.yml
- spec.yml
- spec.yml
- speccopy2.yml
- example-api-v0.json
- not-added.yml
- spec.yml
- anotherschema.yml
- openapi.yml
- schemas.yml
- har.har
- openapi.yml
- openapi.yml
- postman_collection.json
- books.yml
- books.yml
- file.txt
- openapi-prefix-and-server-urls.yml
- openapi-prefixed-url.yml
- openapi-with-external-ref-spaces.yml
- openapi-with-external-ref.yml
- openapi-with-ignore.yml
- openapi-with-overlapping-paths.yml
- openapi-with-server-prefix.yml
- openapi.yml
- optic.yml
- server.js
- empty.txt
- optic.yml
- example-api-v0.json
- example-api-v1.json
- optic.dev.yml
- cloud-mock.js
- local.js
- example-api-v0.json
- example-api-v1.json
- optic.dev.yml
- example-api-v0.json
- example-api-v1.json
- optic.dev.yml
- example-api-v0.json
- example-api-v1.json
- petstore-base.json
- petstore-updated.json
- ruleset.yml
- optic.yml
- example-api-1-updated.json
- example-api-1.json
- example-api-2-updated.json
- example-api-2.json
- optic.yml
- spec.json
- example-api.json
- example-api-v0.json
- example-api-v1.json
- ruleset.yml
- example-api-v0.json
- example-api-v1.json
- spec-no-url.json
- spec.json
- optic.yml
- should-ignore.yml
- should-run.yml
- specwithkey.yml
- in-folder.yml
- mvspec.yml
- optic.dev.yml
- random-json-with-openapi.json
- spec-with-invalid-url.yml
- specwithkey.json
- specwithkey.yml
- specwithoutkey.json
- specwithoutkey.yml
- mvspec.yml
- petstore-base.json
- petstore-updated.json
- optic.dev.yml
- spec-fails-requirement.yml
- spec-fails-validation.yml
- spec-good-spec.yml
- spec-with-bad-formatting.yml
- rules.js
- rules.js
- rules.js
- openapi.yml
- optic.yml
- openapi.yml
- optic.yml
- server.js
- spec.yml
- spec.yml
- har.har
- openapi.yml
- har.har
- openapi.yml
- har.har
- openapi.yml
- bundle.test.ts
- capture-init.test.ts
- capture.test.ts
- diff-all.test.ts
- diff.test.ts
- history.test.ts
- integration.ts
- lint.test.ts
- config.test.ts
- optic.yml
- errors.ts
- index.ts
- JsonHttpClient.ts
- optic-backend-types.ts
- optic-backend.ts
- add.ts
- create.ts
- default-ruleset-config.ts
- get-file-candidates.ts
- git-get-file-candidates.ts
- list.ts
- bundle.ts
- json-iterator.test.ts
- json-iterator.ts
- add-ignore-paths.ts
- captureRequests.ts
- documented.ts
- index.ts
- undocumented.ts
- api-coverage.ts
- grouped-interactions.ts
- queries.test.ts.snap
- path-inference.test.ts
- queries.test.ts
- path-inference.ts
- queries.ts
- patches.test.ts.snap
- patches.test.ts
- closeness.test.ts.snap
- closeness.test.ts
- closeness.ts
- schema-inventory.ts
- enum.test.ts.snap
- oneOf.test.ts.snap
- required.test.ts.snap
- type.test.ts.snap
- enum.test.ts
- oneOf.test.ts
- required.test.ts
- type.test.ts
- additionalProperties.ts
- enum.ts
- newSchema.ts
- oneOf.ts
- required.ts
- type.ts
- unevaluatedProperties.ts
- diff.ts
- documented-bodies.ts
- patches.ts
- schema.ts
- operations.ts
- patches.ts
- request-params.ts
- response-headers.ts
- spec.ts
- types.ts
- patch-operations.ts
- patches.ts
- summaries.ts
- har.test.ts.snap
- interaction.test.ts.snap
- echo.postman_collection.json
- githubpaths.json
- petstore.swagger.io.har
- body.test.ts
- har.test.ts
- interaction.test.ts
- postman.test.ts
- body.ts
- captured-interactions.ts
- har.ts
- postman.ts
- proxy.ts
- file.ts
- capture-init.ts
- capture.ts
- init.ts
- storage.ts
- common.test.ts.snap
- common.test.ts
- comment-api.ts
- comment.ts
- common.ts
- setup.ts
- dereference.ts
- json-changelog.test.ts.snap
- params-new.yaml
- params-old.yaml
- response-headers-new.yaml
- response-headers-old.yaml
- json-changelog.test.ts
- common.ts
- json-changelog.ts
- terminal-changelog.ts
- compressResults.ts
- compute.ts
- diff-all.ts
- diff.ts
- generate-rule-runner.ts
- lint.ts
- login.ts
- capture-storage.ts
- getInteractions.ts
- index.ts
- mac-system-proxy.ts
- proxy.test.ts
- proxy.ts
- run-command.ts
- system-proxy.test.ts
- system-proxy.ts
- document.test.ts
- document.ts
- infer-path-structure-legacy.ts
- patch.ts
- forkable.iter.test.ts.snap
- forkable.iter.test.ts
- async-tools.ts
- shell-utils.ts
- index.test.ts.snap
- method.test.ts.snap
- path.test.ts.snap
- index.ts
- method.test.ts
- method.ts
- path.test.ts
- path.ts
- index.test.ts
- index.ts
- traversers.ts
- documented-interactions.ts
- undocumented.ts
- index.ts
- feedback.ts
- next-command.ts
- update.ts
- index.ts
- stringify.ts
- index.ts
- index.ts
- missing-method.ts
- missing-path.ts
- new-spec.ts
- template.ts
- files.ts
- patches.ts
- index.ts
- index.ts
- io.ts
- documented-body.ts
- facts.ts
- oneof-schemas.ts
- invalid-refs.yml
- petstore.yml
- extend.test.ts.snap
- generate.test.ts.snap
- extend.test.ts
- generate.test.ts
- capture-clear.ts
- capture.ts
- new.ts
- setup-tls.ts
- update.ts
- verify.ts
- init.ts
- upload.ts
- add-api-url.ts
- push.ts
- config.ts
- history.ts
- run.ts
- write-to-file.test.ts.snap
- diff-renderer.test.ts.snap
- cloud-urls.test.ts
- diff-renderer.test.ts
- pathPattern.test.ts
- write-to-file.test.ts.snap
- capture.ts
- checksum.ts
- ci-data.ts
- cloud-urls.ts
- diff-renderer.ts
- git-utils.ts
- open-url.ts
- pathPatterns.ts
- render-cloud.ts
- s3.ts
- spec-loaders.ts
- specs.ts
- spinner.ts
- tags.ts
- write-optic-config.ts
- write-to-file.test.ts
- write-to-file.ts
- config.ts
- constants.ts
- error-handler.ts
- index.ts
- init.ts
- lib.ts
- logger.ts
- segment.ts
- sentry.ts
- types.ts
- .gitkeep
- favicon.ico
- index.html
- logo192.png
- logo512.png
- manifest.json
- robots.txt
- any-attribute.tsx
- base-node.tsx
- change-indicator.tsx
- description.tsx
- heading.tsx
- parameter.tsx
- required.tsx
- SummarizeSchema.tsx
- text-diff.tsx
- url.tsx
- Yaml.tsx
- issue.tsx
- issues.tsx
- SchemaContext.tsx
- SchemaDoc.tsx
- SchemaExample.tsx
- all-items.ts
- changelog-tree.ts
- index.ts
- oas3.ts
- oas3_1.ts
- operationId.ts
- rules.ts
- swagger2.ts
- types.ts
- utils.ts
- ChangelogLayout.tsx
- ChangelogOperation.tsx
- ChangelogPage.tsx
- constants.ts
- OperationDoc.tsx
- OperationYml.tsx
- index.tsx
- .gitignore
- .npmignore
- craco.config.js
- package-lock.json
- package.json
- README.md
- tsconfig.json
- .env.example
- .env.production
- .gitignore
- .npmignore
- babel.config.js
- Developers.md
- jest-preset.js
- jest.config.js
- package.json
- tsconfig.json
- DataShapes.md
- OperationRule.md
- PropertyRule.md
- Reference.md
- RequestRule.md
- ResponseBodyRule.md
- ResponseRule.md
- Ruleset.md
- SpecificationRule.md
- operation-rules.test.ts.snap
- property-rules.test.ts.snap
- request-rules.test.ts.snap
- response-body-rules.test.ts.snap
- response-rules.test.ts.snap
- specification-rules.test.ts.snap
- spectral-rule.test.ts.snap
- operation-rules.test.ts
- property-rules.test.ts
- request-rules.test.ts
- response-body-rules.test.ts
- response-rules.test.ts
- rule.test.ts
- ruleset.test.ts
- specification-rules.test.ts
- spectral-rule.test.ts
- fake-custom-ruleset.ts
- local-fake-custom-ruleset.ts
- download-ruleset.test.ts
- prepare-ruleset.test.ts
- download-ruleset.ts
- load-ruleset.ts
- prepare-rulesets.ts
- resolve-ruleset.ts
- spectral-rule.ts
- data-constructors.test.ts.snap
- group-facts.test.ts.snap
- rule-runner.test.ts.snap
- petstore-small.ts
- petstore.ts
- data-constructors.test.ts
- group-facts.test.ts
- rule-runner.test.ts
- petstore.base.ts
- utils.test.ts
- operation-matchers.ts
- request-body-matchers.ts
- response-body-matchers.ts
- response-matchers.ts
- specification-matchers.ts
- utils.ts
- assertions.ts
- data-constructors.ts
- group-facts.ts
- index.ts
- operation.ts
- request.ts
- response-body.ts
- response.ts
- rule-filters.ts
- rule-runner-types.ts
- rule-runner.ts
- specification.ts
- utils.ts
- external-rule-base.ts
- index.ts
- operation-rule.ts
- property-rule.ts
- request-rule.ts
- response-body-rule.ts
- response-rule.ts
- ruleset.ts
- specification-rule.ts
- errors.ts
- index.ts
- test-helpers.ts
- types.ts
- .gitignore
- .npmignore
- babel.config.js
- jest.config.js
- package.json
- README.md
- tsconfig.json
- breaking-changes.test.ts.snap
- enum-breaking-changes.test.ts.snap
- parameter-requirement-breaking-changes.test.ts.snap
- parameter-type-breaking-changes.test.ts.snap
- response-status-code-removal.test.ts.snap
- breaking-changes.test.ts
- enum-breaking-changes.test.ts
- parameter-requirement-breaking-changes.test.ts
- parameter-type-breaking-changes.test.ts
- response-status-code-removal.test.ts
- type-change.test.ts
- unions.test.ts
- getOperationAssertionsParameter.ts
- type-change.ts
- types.ts
- unions.ts
- index.ts
- preventEnumBreak.ts
- preventNewRequiredParameter.ts
- preventOperationRemoval.ts
- preventParameterTypeChange.ts
- preventRequestExpandingWithUnionTypes.ts
- preventRequestPropertyRequired.ts
- preventRequestPropertyTypeChange.ts
- preventRequireExistingParameter.ts
- preventResponseNarrowingWithUnionType.ts
- preventResponsePropertyOptional.ts
- preventResponsePropertyRemoval.ts
- preventResponsePropertyTypeChange.ts
- preventResponseStatusCodeRemoval.ts
- documentation.test.ts.snap
- documentation.test.ts
- constants.ts
- index.ts
- requireOperationDescription.ts
- requireOperationId.ts
- requireOperationSummary.ts
- requirePropertyDescriptions.ts
- examples-are-required.test.ts.snap
- examples-are-valid-rules.test.ts.snap
- examples-are-required.test.ts
- examples-are-valid-rules.test.ts
- constants.ts
- example-ruleset.test.ts
- index.ts
- qualifiedContentType.ts
- requireExample.ts
- requireValidExamples.ts
- prepare-openapi.test.ts.snap
- prepare-openapi.test.ts
- constants.ts
- index.ts
- prepare-openapi.ts
- rules-helper.ts
- naming-changes.test.ts.snap
- index.test.ts
- is-case.test.ts
- naming-changes.test.ts
- constants.ts
- cookieParameters.ts
- index.ts
- isCase.ts
- operationIds.ts
- pathComponents.ts
- propertyNames.ts
- queryParameters.ts
- requestHeaders.ts
- responseHeader.ts
- index.ts
- index.ts
- utils.ts
- .gitignore
- .npmignore
- babel.config.js
- jest.config.js
- package.json
- README.md
- tsconfig.json
- .editorconfig
- .gitignore
- .prettierignore
- .prettierrc
- .tool-versions
- .yarnrc.yml
- compass.yml
- Dockerfile
- LICENSE
- package.json
- README.md
- renovate.json
- Taskfile.yml
- yarn.lock
# 설치 가이드
1. 코드 내려받기
git clone https://github.com/opticdev/optic
깃허브에서 프로젝트 코드 전체를 내 컴퓨터로 내려받습니다.
cd optic
방금 내려받은 프로젝트 폴더 안으로 이동합니다.
2. 공식 설치 스크립트
쉬움 추천사전 준비물
- Node.js npm 명령어를 쓰려면 Node.js가 설치되어 있어야 합니다.
npm install -g @useoptic/optic
npm 레지스트리에 배포된 패키지를 전역으로 설치합니다. 소스 클론이 필요 없습니다.
설치 후 새 터미널을 열고, 프로그램의 버전 확인 명령(예: --version)으로 정상 설치됐는지 확인하세요.
이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.
3. Docker
쉬움사전 준비물
- Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
- Docker Desktop 컨테이너를 빌드하고 실행하려면 필요합니다. 설치 후 실행해서 백그라운드에 켜두세요.
docker build -t optic .
Dockerfile을 기반으로 실행 가능한 이미지를 빌드합니다.
docker run -p 8080:80 optic
빌드된 이미지를 실제 컨테이너로 실행합니다.
터미널에 docker compose ps 를 입력해 컨테이너들이 Up 상태인지 확인하세요. README에 포트 번호가 적혀있다면 브라우저에서 http://localhost:포트번호 로 접속해보세요.
4. Node.js
쉬움사전 준비물
npm install -g @useoptic/optic
npm 레지스트리에 배포된 패키지를 전역으로 설치합니다. 소스 클론이 필요 없습니다.
명령어 실행 후 터미널에 나타나는 주소(보통 http://localhost:3000 형태)를 브라우저에서 열어보세요.
이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.
// repository documentation
Was this content helpful?
(0 ratings)
