Apifox: API 설계, 디버깅, 테스트를 한곳에서 하는 무료 도구

요약

Apifox는 API 문서, 디버깅, Mock, 자동 테스트를 하나의 시스템에 모은 도구입니다. 인터페이스 데이터를 한 벌만 유지할 수 있습니다.

추천
이름
Apifox
버전
20220914
요금
무료
오픈소스
비오픈소스
공식 사이트
https://www.apifox.cn/
업데이트
2026-10-06 22:58

네 곳을 하나의 시스템으로

Apifox는 인터페이스의 일생 전체를 다루는 도구입니다. 문서를 쓰고, 디버깅하고, 백엔드가 없는 단계에서 Mock을 만들고, 그 뒤에 자동 테스트를 돌립니다. 그 배경에 있는 설계 판단은 이 네 가지 작업이 같은 데이터를 읽는다는 것입니다. 프로젝트는 인터페이스 하나에 설명을 한 벌만 유지하고 나머지는 모두 그 설명에서 나옵니다. 같은 API의 두 가지 판을 두 시스템이 들고 있는 익숙한 문제를 없애는 지점이 바로 여기입니다.

제공사의 설명은 네 영역을 듭니다. API 문서, API 디버깅, API Mock, API 자동 테스트입니다. 공개 SaaS 버전은 현재 무료이며 팀 인원, 기능, 프로젝트 수, 인터페이스 수에 제한이 없습니다.

Apifox 화면

문서 설계

시나리오 테스트는 일련의 호출을 하나의 흐름으로 실행하며 그 사이에 오가는 데이터가 올바른지 확인합니다. 단언은 코드가 아니라 화면에서 설정하고, 변수는 응답에서 추출할 수 있으며, 흐름 중간에 데이터베이스로 SQL을 실행할 수 있습니다. 사전·사후 스크립트는 자유롭게 쓸 수 있고 문법은 Postman 스크립트와 완전히 호환됩니다. 그 도구에서 옮겨 오는 팀의 학습 부담이 낮게 유지되는 이유입니다.

스크립트는 JavaScript에 국한되지 않습니다. javascript, java, python, php, js, BeanShell, go, shell, ruby, lua를 호출할 수 있어 기존의 작은 도구를 다른 언어로 다시 쓸 필요가 없습니다.

문서와 디버깅

디버깅

디버깅 화면에는 인터페이스 도구에 기대하는 것이 갖춰져 있습니다. 환경 변수, 사전·사후 스크립트, 요청 사이에 공유되는 Cookie와 Session입니다. 여기에 더해 응답의 데이터 구조를 문서의 정의와 대조합니다. 형식이 바뀌었거나 사라진 필드는 일주일 뒤에 발견되는 것이 아니라 그 자리에서 보고됩니다.

케이스는 세션이 아니라 인터페이스에 속합니다. 하나의 인터페이스에 여러 케이스를 둘 수 있고 각 케이스는 고유한 파라미터와 기댓값을 가집니다. 단언, 변수 추출, SQL 조작도 여기서 화면으로 설정하므로 설계, 디버깅, 테스트의 작업 방식이 같은 상태로 유지됩니다.

Mock과 자동 테스트

Mock에는 설정이 필요 없습니다. 도구가 API 문서에서 그럴듯한 데이터를 이끌어 냅니다. 내장 Mock.js 규칙 엔진 덕분에 데이터 구조를 정의하는 시점에 규칙을 넣을 수 있고, 파라미터 값이 다르면 반환 내용도 달라집니다. Mock이 분기 확인에 쓸 수 있는 도구가 되는 이유가 여기에 있습니다. 순조로운 경로만 시험하는 도구가 아닙니다.

자동 테스트는 앞에서 설명한 시나리오 테스트를 그대로 사용합니다. Apifox CLI로 명령줄에서 실행할 수 있어 지속적 통합에 들어갑니다. Jenkins 작업이든 다른 실행기든 빌드마다 컬렉션을 돌릴 수 있습니다.

데이터베이스와 생성되는 코드

데이터베이스 접근은 양방향으로 쓰입니다. 데이터를 읽어 요청 파라미터로 사용할 수 있고, 요청이 실제로 성공했는지 확인하기 위해 읽을 수도 있습니다. 인터페이스가 짧은 확인만 돌려주고 실제 결과는 테이블에 남는 경우에 효과가 있습니다.

인터페이스나 모델 정의에서 업무 코드와 API 호출 코드를 모두 생성합니다. TypeScript, Java, Go, Swift, Objective-C, Kotlin, Dart, C++, C#, Rust가 지원하는 130개 언어와 프레임워크에 포함되며, 템플릿을 직접 만들어 팀의 아키텍처 규약에 맞춘 출력을 얻을 수 있습니다.

Mock과 코드 생성

프로토콜, 가져오기와 내보내기

HTTP와 HTTPS 인터페이스를 관리하고 TCP 기반 Socket 연결도 다룹니다. GraphQL, Dubbo, gRPC, WebSocket은 추후 지원으로 제시되어 있습니다. 도구를 표준으로 삼을지 결정하는 자리에서는 이 점을 먼저 아는 것이 좋습니다.

내보내기는 OpenAPI(Swagger), Markdown, HTML을 지원합니다. 가져오기는 OpenAPI(Swagger), Postman, HAR, RAP2, JMeter, YApi, Eolinker, NEI, RAML, DOClever, Apizza, DOCWAY, ShowDoc, apiDoc, I/O Docs, WADL, Google Discovery를 덮으므로 기존 컬렉션을 손으로 다시 만드는 일은 거의 없습니다.

팀으로 쓰는 방법

인터페이스 데이터는 클라우드에서 동기화되고 실시간으로 갱신됩니다. 한 벌만 유지한다는 생각이 여러 사람에게서도 성립하는 전제입니다. 권한은 팀 단위와 프로젝트 단위로 관리하며 관리자, 일반 구성원, 읽기 전용 구성원 역할이 있습니다.

어떤 사람에게 맞는가

문서, 디버깅 컬렉션, 테스트 케이스를 세 곳에서 유지하는 데 지친 백엔드 팀은 정의는 하나, 쓰임은 여럿이라는 형태를 곧바로 얻습니다. 아직 없는 인터페이스를 기다리는 프런트엔드 팀은 손으로 쓴 대역이 아니라 문서에서 나온 Mock을 받습니다. 이미 다른 곳에 큰 컬렉션을 가진 팀은 대개 가져오기로 끝나며 처음부터 다시 만들 필요가 없습니다.