명령행 API 테스트 팁

11538 단어 httpieapiclitesting
API를 빌드하거나 사용하더라도 API 호출을 테스트합니다.빠른 검사와 교체 개발에 있어서 명령행은 개발자의 가장 좋은 친구이다.HTTPie를 사용하면 더욱 빠르게 이동할 수 있습니다.HTTPie는 당신의 뇌에서 비직관적인 명령 표지를 방출하고 중복된 파라미터를 완전히 삭제합니다.
이 기사는 명령행 API 개발을 최대한 활용하기 위해 빠른 예를 제시할 것입니다.이러한 팁과 팁을 사용하면 API의 문제를 해결하고 워크플로우를 즐겁게 할 수 있습니다.

그를 일등 공민으로 만들다
적어도 10년 동안 JSON은 HTTP API의 사실상 표준 응답 형식이었다.이상하게도 많은 도구들이 다른 격식에 대해 동등한 중시를 한다.HTTPie는 데이터가 JSON으로 표시된다고 가정하는 합리적인 기본값을 제공합니다.
fast and easy installation 이후 간단한 명령줄 호출을 통해 JSON 응답을 검색할 수 있습니다.
$ http api.open-notify.org/astros.json
이 명령을 실행하면 현재 우주에 있는 사람들의 목록을 얻을 수 있습니다. 감사합니다. Open NotifyHTTPie는 기본적으로 API 응답을 읽을 수 있도록 합니다.이 호출의 결과는 구문으로 강조 표시된 JSON으로 표시됩니다.파이프를 통해 다른 포맷 도구에 연결할 필요도 없고 서버가 결과를 예쁘게 출력할 필요도 없다.
요청 데이터든 응답 데이터든 다른 설명이 없으면 HTTPie는 항상 먼저 JSON을 찾습니다.이는 Content-typeAccept 헤드가 application/json로 설정됐다는 뜻이다.또한 text/plain 또는 알 수 없는 컨텐츠 유형에서 JSON을 찾기도 합니다.
비록 개발자가 JSON을 매우 좋아하지만, 우리는 항상 JSON을 쓰는 것을 좋아하지 않는다. 특히 명령줄에서.중괄호, 따옴표, 평생 백슬래시가 필요 없는 유연한 명령행 매개변수를 사용하여 JSON을 구성합니다.
다음은 갑작스러운 구문을 사용하지 않고 기본 JSON을 보내는 데 사용되는 예제 호출입니다.
$ http POST pie.dev/post name=Jason year:=2001
명령을 실행하면 HTTPie는 field=value 쌍을 문자열로, field:=value는 텍스트(이 예에서는 숫자)로 해석합니다.모든 매개변수 쌍은 URL에 게시된 JSON 데이터로 변환됩니다.
{
  "name": "Jason",
  "year": 2001
}
더 복잡한 데이터의 경우 외부 JSON 또는 텍스트 파일을 포함할 수 있습니다.그러나 JSON 구문, 이스케이프 따옴표 등을 사용하여 간단한 요청 데이터를 표현하는 것을 중지할 수 있습니다.이것은 HTTPie가 고급 필드 (예를 들어 그룹) 를 처리하고 간단한 명령행 문법을 유지하는 자연스러운 복잡한 과정이다.이러한 접근 가능한 세부 사항은 JSON fields documentation을 참조하십시오.

자연 API 네이티브 명령 사용
다른 명령줄 요청 도구와 다를 바 없지만 API를 위해 만들어진 것은 아닙니다.이러한 CLI 유적 중 일부는 네트워크 자체만큼 오래 존재합니다.각 프로토콜, 데이터 형식 및 사용 패턴을 지원하기 위해 API 개발자가 일상적인 작업을 수행하기 어려울 수 있습니다.HTTPie는 현대 API 개발과 함께 구축된 것으로 작업의 자연스러운 연장선입니다.
JSON은 당연히 API 오리지널 옵션입니다.또한 HTTPie는 HTTP API에 액세스하기 위한 주요 프로토콜에 경의를 표합니다.많은 HTTPie 명령interface design에서 기본 HTTP 요청을 시뮬레이션합니다.
예를 들어, 이 명령은 다음과 같습니다.
$ http POST pie.dev/post \
    X-API-Key:123 \
    User-Agent:Bacon/1.0 \
    name=Jason year:=2001
HTTP를 통해 다음과 같이 전송됩니다.
POST /post HTTP/1.1
Host: pie.dev
X-API-Key: 123
User-Agent: Bacon/1.0
Content-Type: application/json

{
    "name": "Jason",
    "year": 2001
}
요청 헤더의 통신 방식은 거의 같아서 특별한 명령 표지가 필요하지 않습니다.이런 단순성은 하나의 자연 유동minimal DSL for request items을 통해 실현된 것이다.헤더의:와 데이터의=는 모두 HTTP에서 왔다.사실 문법의 위력은 매우 뚜렷하다. 간단하게 조정하기만 하면 -f 로고를 추가하면 완전히 같은 데이터 필드를 인코딩으로 보낼 수 있다.
POST /post HTTP/1.1
Host: pie.dev
X-API-Key: 123
User-Agent: Bacon/1.0
Content-Type: application/x-www-form-urlencoded

name=Jason&year=2001
이러한 HTTP 호출의 모양새를 실시간 호출 없이 보려면 enter --offline mode할 수 있습니다.HTTPie는 호스트에 요청을 보내지 않고 stdout에 인쇄합니다.
오프라인 모드는 HTTPie에서 선택한 추가 암시적 선택을 볼 수 있는 가장 좋은 방법입니다.
  • 요청 데이터가 존재하면 POST가 자동으로 발송
  • request URLs에서 http://https://를 제거할 수 있습니다.
  • 또는 직접 사용:-send requests to localhost
  • 자연 문법은 당신의 머리를 API 개발에 집중하게 하고, 눈은 매뉴얼 페이지에서 멀리 떨어지게 한다.이것은 API 인증과 같은 더 큰 문제에 집중할 수 있게 한다.

    너의 신분 검증을 되풀이하지 마라
    소프트웨어 개발 중인 DRY 지침에 대해 잘 알고 있을 수 있습니다.DRY는 중복을 줄이기 위해'자신을 중복하지 말라'는 의미다.전형적인 코드급 방법은 모듈화와 유사한 추상을 포함한다.이에 비해 각 API 요청은 독립적입니다.API 요청을 보낼 때마다 이전 요청에서 전송한 경우에도 인증 자격 증명을 포함해야 합니다.예를 들어 만약에 API 요청이 클라우드 메모리 서비스에 대한 것이라면 계정에 접근하는 모든 요청은 이 서비스의 증빙서류가 필요합니다.이것은 중복되고 불편한 것이다.
    HTTPie는 API 클라이언트로서 API 서버의 규칙을 준수해야 합니다.서버는 매번 새로운 증빙서류를 받아야 하지만 HTTPie는 사용자가 보내는 것을 대표하여 저장할 수 있습니다.
    session functionality를 사용하면 인증이 중복되지 않습니다.세션 기능은 머리에 API 토큰을 전달하거나 요청 URL의 일부로 사용할 때 매우 편리합니다.API 호출의 나머지 부분은 어떤 경우에도 방해가 됩니다.
    당신이 처음 전화를 했을 때, 신분 검증, 헤더, 그리고 매번 통화에서 보내고 싶은 모든 내용을 포함한다.그런 다음 --session 플래그를 사용하여 세션 이름을 지정합니다.
    $ http --session=dev -a :APIKEY pie.dev/get X-Random-Header:Included
    
    여기에는 API 키via Basic Auth 와 사용자 정의 헤더가 포함되어 있습니다."dev"라는 세션도 만들었습니다. 다음 호출은 세션 로고만 포함하면 이전 요청의 인증과 헤더를 통과할 수 있습니다.
    이 명령의 결과는 더 자세한 명령과 같습니다.
    $ http --session=dev pie.dev/get
    
    명령에 명시적으로 포함되지 않았음에도 불구하고 API 키 인증은 HTTP 호출에 추가됩니다.이와 유사하게 이렇게 많은 공간을 차지하는 X-Random-Header도 발송할 때 명확하게 나타나지 않았다.
    세션은 명령을 더욱 간결하게 합니다. 특히 조회 매개 변수나 요청 데이터를 보내기 시작할 때.일단 회화 표지가 생기면, 너는 너 자신을 되풀이하지 않을 것이다.붙여넣기 또는 API 패치와 함께 자주 수행되는 번거로운 명령줄 편집을 복사하여 완료할 수도 있습니다.
    명명된 세션의 다른 선택은 세션 세부 정보를 로컬 파일에 저장하는 것입니다.너는 팀에서 이 세션 파일들을 공유할 수 있다. 그러면 너는 항상 같은 결과를 얻을 수 있다.그리고 call them up by file path, 또는 다음 절의 기교를 사용하여 기본 설정에 포함시킵니다.

    자체 기본값 만들기
    누군가가 자신의 기계를 개발하는 것을 보는 것은 일종의 모험이다.랜덤으로 보이는 키 조합이 비범한 결과를 가져올 수 있음을 알 수 있을 것이다. (그러나 Vim 사용자가 삽입 모드에 있다고 잘못 생각하면 순수한 혼란이 발생할 수 있다.)이러한 맞춤형 제작은 당신이 모든 개발 도구를 충분히 이용하는 데 도움을 줄 수 있다.HTTPie에 추가할 수 있는 사용자 정의 기본값을 자신의 것으로 만들 수 있습니다.
    최신 버전configuration file options and location은 HTTPie 문서에 있습니다.
    예를 들어, 이전 세션의 인증서와 사용자 정의 헤더가 요청마다 자동으로 같은 호스트로 전송되도록 세션을 기본적으로 설정할 수 있습니다.이를 위해서는 --sessiondefault_options 표지를 포함해야 한다.그런 다음 각 호스트에 대해 고유한 세션 파일이 생성되고 수정할 수 있습니다.프로파일은 다음과 같습니다.
    {
        "default_options": [
          "--session=default"
        ]
    }
    
    기본값을 덮어쓸 때마다 다른 session 로고를 명확하게 포함하거나 --no-session 로고를 사용하여 기존 세션 데이터를 무시하십시오.
    구성 기본값에는 다음과 같이 배열로 지정된 모든 플래그 옵션이 포함될 수 있습니다.
    {
        "default_options": [
          "--session=default",
          "--body",
          "--style=colorful",
          "--format-options=json.indent:2"
        ]
    }
    
    이 예에서는 앞에서 설명한 것처럼 세션 플래그가 있지만
  • 는 응답 주체만 표시하는 --body를 포함한다.
  • 문법 강조 표시--style를 정의된 색 방안으로 설정한다.
  • --format-options에 두 빈칸의 축진을 설정하는 데 사용한다.
  • 및 HTTPie가 --follow를 새 위치로 리디렉션할 것을 나타냅니다.
  • 기본값을 사용할 때, http 명령을 사용할 때마다, 이 표지판을 덮어쓰지 않으면 모두 포함됩니다.
    다음 HTTPie 호출을 통해 데이터 다운로드, SSL 사용 및 프록시 사용 옵션 등 명령 플래그의 분류 목록을 찾을 수 있습니다.
    $ http --help
    
    이 목록에서 직관적인 기본 설정과 유연한 설정이 있는 균형점을 발견할 수 있다.
    다른 개발자와 HTTPie 명령을 공유할 때 변경default_options은 의외의 불일치를 초래할 수 있음을 주의하십시오.사용자 정의default_options를 임시로 비활성화$HTTP_CONFIG_DIR하도록 설정하고 HTTPie의 기본 동작을 확인할 수 있습니다. 예를 들어,
    $ HTTPIE_CONFIG_DIR=/tmp http pie.dev/get
    

    API 문제 감소
    HTTPie는 2012년에 시작되었는데api를 구축하고 호출할 때의 고통을 없애기 위한 것이다.수천 명의 개발자들이 명령줄에 추가하여 멋진 응답으로 쉽게 요청을 수행할 수 있도록 사용합니다.
    Learn more about HTTPie 추가 팁, 뉴스, API 팁
    저자: 원작자HTTPie blog.

    좋은 웹페이지 즐겨찾기