Thanks to visit codestin.com
Credit goes to github.com

Skip to content

weniv/api-tester

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API Tester

API 테스트 및 문서화를 위한 웹 기반 도구

사용법

https://weniv.github.io/api-tester/ 링크에서 바로 사용 가능

로컬에서 사용 시 index.html 파일을 브라우저에서 직접 열면 됩니다. (서버 불필요)


주요 기능

1. API 테스트 실행

  • 단일 테스트: Base URL + Endpoint + Method + Body 입력 후 실행
  • 전체 테스트: 컬렉션에 저장된 모든 테스트를 순차 실행
  • 상태 코드 검증: Expected Status와 실제 응답 상태 코드 비교

2. 컬렉션 관리

  • 관련된 API 테스트를 컬렉션으로 그룹화
  • 컬렉션 생성/삭제
  • JSON 파일로 내보내기/가져오기 지원

3. 환경 변수

  • 여러 환경(개발/스테이징/프로덕션) 설정 관리
  • Base URL 등 환경별 변수 설정
  • 환경 전환으로 빠른 테스트 환경 변경

4. 계정 관리 (인증)

  • 여러 테스트 계정 등록 및 관리
  • 로그인하여 JWT 토큰 자동 획득
  • 테스트별로 사용할 계정 선택 가능
  • 인증이 필요한 API 테스트 지원

5. 변수 추출 및 체이닝

  • API 응답에서 값을 추출하여 변수로 저장
  • 저장된 변수를 다음 API 요청에서 사용
  • 연속된 API 테스트 시나리오 구현 가능

사용 가이드

기본 테스트 실행

  1. Base URL 설정: 상단 툴바에서 API 서버 주소 입력 (예: http://localhost:8000)
  2. 테스트 작성:
    • Method 선택 (GET, POST, PUT, PATCH, DELETE)
    • Endpoint 입력 (예: /api/users/)
    • 필요시 Headers, Body 입력 (JSON 형식)
    • Expected Status 입력 (기본값: 200)
  3. 테스트 실행: ▶ 테스트 실행 버튼 클릭
  4. 결과 확인: 우측 패널에서 응답 확인

계정 로그인

  1. 툴바의 LOGIN 영역에서 로그인 엔드포인트 설정 (기본값: /accounts/login/)
  2. 계정 영역에서 이메일/비밀번호 입력
  3. 로그인 버튼 클릭
  4. 성공 시 ✓ 인증됨으로 변경
  5. 추가 계정은 계정 관리 버튼으로 등록

인증이 필요한 API 테스트

  1. 테스트 설정에서 인증 계정 드롭다운 선택
  2. 인증된 계정 선택
  3. 테스트 실행 시 자동으로 Authorization: Bearer {token} 헤더 추가

변수 추출 (Response Chaining)

API 응답에서 값을 추출하여 다음 요청에서 사용할 수 있습니다.

변수 추출 설정 (JSON 형식):

{
  "postId": "$.id",
  "userId": "$.user.id",
  "firstItemId": "$.results[0].id",
  "token": "$.access_token"
}

지원하는 경로 문법:

문법 설명 예시
$.필드명 최상위 필드 $.id
$.a.b.c 중첩 객체 $.user.profile.name
$.arr[0] 배열 인덱스 $.results[0].id
$.a.b[0].c 복합 경로 $.data.items[0].name

변수 사용법:

  • Endpoint: /posts/{{postId}}/
  • Headers: {"Authorization": "Bearer {{token}}"}
  • Body: {"author_id": "{{userId}}"}

추출된 변수는 툴바의 VAR 영역에 표시되며, 결과 카드에서도 확인할 수 있습니다.

컬렉션 저장 및 관리

  1. 테스트 작성 후 저장 버튼 클릭
  2. 컬렉션이 없으면 자동으로 "My Collection" 생성
  3. 사이드바에서 저장된 테스트 클릭하여 불러오기
  4. + 컬렉션 버튼으로 새 컬렉션 생성

환경 설정

  1. 툴바의 ENV 옆 드롭다운으로 환경 전환
  2. 설정 버튼으로 환경 관리 모달 열기
  3. 환경별 변수 (BASE_URL 등) 설정

데이터 저장

  • 모든 데이터는 브라우저 로컬스토리지에 저장
  • 브라우저/기기별로 별도 저장
  • 저장되는 항목:
    • 컬렉션 및 테스트
    • 환경 설정
    • 계정 정보 (토큰 포함)

데이터 초기화

  • 결과 초기화: 테스트 결과와 런타임 변수만 초기화
  • 전체 리셋: 모든 저장된 데이터 삭제 (컬렉션, 계정, 환경 설정 포함)

로그인 API 규격

계정 로그인 기능은 다음 API 규격을 기준으로 동작합니다:

로그인 엔드포인트 설정:

  • 툴바의 LOGIN 영역에서 로그인 엔드포인트를 설정할 수 있습니다
  • 기본값: /accounts/login/
  • 환경별로 다른 엔드포인트 설정 가능 (환경 변수 LOGIN_ENDPOINT)

요청:

POST {BASE_URL}{LOGIN_ENDPOINT}
Content-Type: application/json

{
  "email": "[email protected]",
  "password": "password123"
}

응답 (다음 필드 중 하나 이상 포함):

{
  "access_token": "...",  // 또는 "access"
  "refresh_token": "...", // 또는 "refresh"
  "user": {
    "pk": 1,              // 또는 "id"
    ...
  }
}

다른 로그인 API 규격(요청 본문 형식 등)을 사용하는 경우, 직접 로그인 API를 테스트로 실행하고 변수 추출 기능으로 토큰을 저장한 뒤 Headers에 직접 {{token}} 변수를 사용하세요.


키보드 단축키

단축키 동작
ESC 모달 닫기

버전 정보

  • v2.0: 리팩토링 버전
    • UI/UX 개선 (다크 테마, 2패널 레이아웃)
    • 동적 계정 관리
    • 변수 추출 및 체이닝
    • 환경 변수 시스템
    • 컬렉션 관리
    • 데이터 마이그레이션 지원

문제 해결

기존 데이터가 안 보여요

v2.0에서 데이터 구조가 변경되었습니다. 앱 실행 시 자동으로 마이그레이션됩니다. 문제가 지속되면 사이드바 하단의 전체 리셋 버튼을 사용하세요.

로그인이 안 돼요

  1. Base URL이 올바른지 확인
  2. 툴바의 LOGIN 영역에서 로그인 엔드포인트가 서버 API와 일치하는지 확인
  3. CORS 설정 확인 (로컬 서버의 경우)
  4. 요청 본문 형식(email/password)이 서버 API와 일치하는지 확인

변수가 치환되지 않아요

  1. 변수 추출이 정상적으로 되었는지 툴바의 VAR 영역 확인
  2. 변수명이 정확한지 확인 ({{변수명}} 형식)
  3. 대소문자 구분됨

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published