Postman에서 변수 및 링크 요청 사용

Vonage에서는 OpenAPI를 사용하여 모든 API를 설명하며 이러한 사양publicly available도 만들었습니다.
우리가 가장 좋아하는 것은 이전에 보지 못했던 OpenAPI 파일을 가져오는 것이다 Postman.따라서 우리는 API를 이전보다 빠르고 쉽게 평가하고 탐색할 수 있도록 추진하기로 했습니다.
본고에서 우리는 Postman에서 탐색 API를 더욱 친근하게 만드는 방법을 중점적으로 소개할 것이다.예를 들면 Postman Collection 을 사용하므로 계속하려면 선행 조건 목록을 확인하십시오.

Vonage API Postman 시리즈 선결 조건

  • Vonage(Nexmo) Account
  • Vonage Number
  • 우체부 계좌 변수는 너의 친구다


    Postman을 처음 가져올 때 Vonage API 폴더가 화면 왼쪽에 있는 컬렉션에 나타납니다.

    집합 이름 아래의'36개 요청'도 볼 수 있습니다.인증 유형에 따라 요청 매개 변수로 추가api_keyapi_secret의 36배에 달한다.
    다행히도, Postman은 환경, 전역, 집합 단계의 변수를 지원하는데, 이 모든 것은 체험을 더욱 순조롭게 하고, 고통을 더욱 적게 할 것이다.이러한 변수는 모든 요청에 동일한 매개 변수 값을 채우는 등 반복적인 작업을 수행하지 않고 동적으로 이 값을 추출할 수 있도록 합니다.
    저희 모음집에는 키와 기밀을 제공할 수 있는 Vonage 환경이 포함되어 있으며, 모든 요청은 이 값을 사용합니다.
    Vonage APIs Collection
    이렇게 하면 간단한 요청을 한다. 예를 들어 계좌 API로 계좌 잔액을 검사하면 원클릭 조작이 된다.

    기타 일부 요청은 추가 인자가 필요할 수 있습니다.예를 들어 문자 메시지를 보내려면 요청 본문 to, fromtext 을 작성해야 하지만 api_keyapi_secret 은 자동으로 채워집니다.
    이러한 매개 변수 중 하나를 변수로 추가할 수도 있습니다. 예를 들어 to 번호가 다음 요청에 집합 변수로 저장되었습니다.
    집합이나 환경을 직접 편집하거나 변수로 바꿀 하드 인코딩 값을 선택한 다음 "변수로 설정"> "새 변수로 설정"을 누르면 됩니다.

    링크 요청


    포스트맨의 변수는 훌륭하지만, 모든 번거로운 일을 해결하는 일반적인 도구는 아니다.
    예를 들어, JWT를 사용하여 인증된 VonageAPI를 사용할 때 요청을 보내기 전에 JWT를 생성해야 합니다.JWT를 생성하려면 응용 프로그램 ID와 개인 키가 필요합니다. Vonage 응용 프로그램을 만들면 이 두 개의 ID와 개인 키를 얻을 수 있습니다.이것은 한 사람이 반드시 세 개의 독립된 요청을 해야 하는 것과 같아서 처음으로 API를 탐색하는 사람들을 곤혹스럽게 할 수 있다.
    다행히도 다단계 선결 조건에 대해서도 링크 요청이라는 변통 방법이 있다.
    Postman은 두 개의 스크립트 영역을 제공합니다. 요청 전 스크립트와 테스트를 제공합니다. 거기서 원하는 자바스크립트 코드를 작성할 수 있습니다. 다른 HTTP 요청을 보내는 것을 포함합니다.

    사전 요청 스크립트


    Vonage 음성 API는 JSON Web 토큰(JWT)을 사용하여 인증을 수행하므로 아웃사이트 호출 요청을 보내려면 다음이 필요합니다.
  • 애플리케이션 API를 사용하여 Vonage 애플리케이션 생성
  • 응답 객체에서 application_idprivate_key 값을 가져와 JWT를 생성합니다.
  • // Check if we already have a JSON Web Token, continue if not
    if (!pm.environment.has("JWT")) {
        var btoa = require('btoa')
        let base64keyandsecret = btoa(`${pm.environment.get("api_key")}:${pm.environment.get("api_secret")}`)
    
    // (1) Create a Voice Application by making a request to the Vonage Applications API
        pm.sendRequest({
            url: 'https://api.nexmo.com/v2/applications',
            method: 'POST',
            header: [`Authorization:Basic ${base64keyandsecret}`, "Content-Type: application/json"],
            body: JSON.stringify({
                "name": "Demo Postman Application",
                "capabilities": {
                    "voice": {
                        "webhooks": {
                            "answer_url": {
                                "address": "https://example.com/webhooks/answer",
                                "http_method": "POST"
                            },
                            "event_url": {
                                "address": "https://example.com/webhooks/event",
                                "http_method": "POST"
                            }
                        }
                    }
                }
            })
        }, (err, res) => {
    // (2) Generate JWT using the application ID as a claim and sign it with the private key
            pm.sendRequest({
                url: 'https://jwtapi-dev.netlify.app/.netlify/functions/generate',
                method: 'POST',
                header: ["Content-Type: application/json"],
                body: JSON.stringify({
                    algorithm: "RS256",
                    private_key: res.json().keys.private_key,
                    claims: {
                        application_id: res.json().id,
                        exp: parseInt((Date.now() / 1000) + 3600, 10)
                    }
                })
            }, (err, res) => {
                pm.environment.set("JWT", res.json().signed_jwt)
            })
        })
    }
    

    테스트: 왜 요청 스크립트를 발표하지 않습니까?


    Postman은 단일 요청, 폴더, 집합에 테스트를 추가할 수 있습니다.이러한 테스트는 API가 예상대로 실행되고 디버깅에 사용될 수 있도록 확보하는 데 매우 유용하지만, 중요한 점은 테스트는 요청을 보낸 후에 실행되는 JavaScript 스크립트라는 것이다.
    이것은 미리 요청한 스크립트를 사용하는 방식을 통해 우리도 테스트 구역을 충분히 이용할 수 있다는 것을 의미한다.
    우리의 음성통화 예시에서 성공적으로 완성된 후에 나는 voice_call_uuid 함수를 사용하여 pm.collectionVariables.set() 을 수집 변수로 저장했다.만약 내가 다른 음성 API와 관련된 요청을 보내기로 결정한다면, 이 변수는 도움이 될 것이다.또는 실패하면 JWT 표현식을 사용하여 pm.environment.unset("JWT") 값을 지우고 요청을 다시 보내고 새 JWT를 생성합니다.
     if (pm.response.code == "201") {
        pm.collectionVariables.set("voice_call_uuid", pm.response.json().uuid);
    } else {
        pm.environment.unset("JWT")
    }
    
    스크립트에서 변수를 정의하는 방법에 대한 자세한 내용은 를 참조하십시오.

    요청 주체


    마지막으로 이것들을 함께 놓고 음성으로 문자를 보내는 음성통화를 합시다.
    아래의 코드 세그먼트를 사용할 수 있으며, tofrom 을 변수나 하드코딩 값으로 제공할 수 있습니다.to 은 귀하가 전화를 걸 목적지 번호이며, from 은 귀하의 Vonage 번호 중 하나입니다.아직 없으시면 Postman docs 중 하나를 추가하십시오.
    NCCO는 우리의 호출 제어 대상으로 호출 응답 후 취해야 할 모든 조작을 열거하고 있다.호출 흐름에 어떤 다른 동작을 포함할 수 있는지 보기 .
    {
        "to": [
            {
                "number": {{to}},
                "type": "phone"
            }
        ],
        "from": {
            "number": {{from}},
            "type": "phone"
        },
        "ncco": [
            {
              "action": "talk",
              "text": "This is a text to speech call from Vonage"
            }
          ]
    }
    
    이 요청은 이제 실행할 수 있으니 발송 단추를 누르십시오.축하너는 이 중에서 가장 좋은 것이 무엇인지 아니?변경 사항을 저장하고 집합을 공유하면 다음 사람은 부족한 변수 값을 입력하고 보내기 단추를 누르기만 하면 됩니다.
    당신은 이런 편리한 우체부 기능을 어떻게 사용할 수 있습니까?무슨 비결이 있습니까?우리에게 알리기;우리는 당신의 건의를 기대하고 있습니다!

    대시보드 다음 단계는 어디에 있습니까?


  • NCCO Reference
  • Vonage APIs Postman Collection
  • Using Variables guide
  • Account API Reference
  • 게시물SMS API Reference이 먼저 Voice API NCCO Reference에 올라왔다.

    좋은 웹페이지 즐겨찾기