Twilio OpenAPI 仕様のベータ版提供開始のご案内

May 19, 2021
執筆者
レビュー担当者

Introducing Twilio's OpenAPI Specification Beta JP

この記事は英語版ブログ記事の抄訳です。

Twilioを使用した初めての製品開発でも、既存製品の機能拡張でも、日頃使用しているプログラミング言語や環境を扱えるツールを簡単に使える必要があります。Twilioは、OpenAPI Specification(OpenAPI仕様)をベータ版としてオープンソース化し、すべてのTwilio APIで利用できるようにしました。

Twilioは長年にわたり、ヘルパーライブラリとツールのサポートとメンテナンスを続けてきましたが、その対象は、開発者の間で最も利用されている言語と環境の一部でした。今回、APIの業界標準形式であるOpenAPI Specificationに準拠したTwilio APIドキュメントファイルを提供し、対応できる言語や環境の拡張を開始したことになります。これによりコードの自動生成がシンプルに行えるようになり、使用している言語やツールにかかわらず、Twilioを使用した開発が簡単になります。

OpenAPIでできること

クライアントライブラリの生成

Twilio OpenAPI Specification の枠組みとオープンソース化されたOpenAPI generator (生成コード) を活用し、新しいクライアントライブラリを生成できます。そうすることで、複雑なメソッドや関数を書く必要がなくなり、お好みのプログラミング言語で、さらに便利でシンプルに、Twilioをお使いいただけます。たとえば、TwilioのAPIメソッドに対して、強力な型定義がされたRustライブラリをプログラミング的にビルドできるようになりました。(以下参照)

use dotenv;
use std::env;
use openapi::apis::{configuration::Configuration, default_api as twilio_api};

#[tokio::main]
async fn main() {
  dotenv::dotenv().expect("Failed to read .env file");
  let account_sid = env::var("TWILIO_ACCOUNT_SID").expect("Failed to parse Account SID");
  let api_key = env::var("TWILIO_API_KEY").expect("Failed to parse API Key");
  let api_key_secret = env::var("TWILIO_API_KEY_SECRET").expect("Failed to parse API Key Secret"); 
  
  let mut twilio_config = Configuration::default();
  // Supply Basic Auth credentials.
  twilio_config.basic_auth = Some((api_key, Some(api_key_secret)));
 
  let balance = twilio_api::fetch_balance(&twilio_config, &account_sid)
    .await
    .unwrap();

  println!("{:?}", balance);
}

ヘルパーライブラリの生成の詳細については、GitHubのOpenAPI Generatorプロジェクト、またはヘルパーライブラリに関するTwilioのドキュメントをご確認ください。

モックテスト

OpenAPI Specificationを使用し、TwilioのAPIのモックを作り、実際のAPI呼び出しをローカルでエミュレートできます。こうすると、テストスイートとTwilioの統合が迅速かつ堅牢になります。例えばDockerにより、TwilioのAPIモックサーバーをポータブルにすることも簡単になりました。

# Dockerfile
# Choose the base image for us to build from.
FROM alpine

# Install dependencies.
RUN apk update && \
 apk add --update git && \
 apk add --update npm && \
 npm i -g @stoplight/prism-cli

# Clone the Twilio OpenAPI spec.
RUN git clone https://github.com/twilio/twilio-oai.git

# Perform preprocessing on the v2010 spec JSON file.
RUN sed -i.bak '/pattern:/d' ./twilio-oai/spec/json/twilio_api_v2010.json && \
 sed -i.bak 's/</Before/' ./twilio-oai/spec/json/twilio_api_v2010.json && \
 sed -i.bak 's/>/After/' ./twilio-oai/spec/json/twilio_api_v2010.json

# Expose the port that Prism runs on.
EXPOSE 4010

# Run Prism!
CMD ["prism", "mock", "-h", "0.0.0.0", "./twilio-oai/spec/json/twilio_api_v2010.json"]

モックテストの詳細については、Twilioのドキュメントをご確認ください。

Postmanのサポート

さらに、Postmanへの対応も追加しました。PostmanはAPI呼び出しのための無料でシンプルな開発ツールで、便利な機能をさまざま備えています。皆さまが個々にTwilioのドキュメントを参照して独自のコレクションを作成する必要はなく、Twilio自身が管理しているコレクションを、Twilio APIのPostmanコレクションのページからダウンロードいただけます。また、ブラウザ上のPostman画面(APIsのセクション)から、Twilio APIに関する情報を視覚的に確認することも可能です。

Twilio Messaging / SMS Collection JP

TwilioのPostmanコレクションの詳細については、Twilioのドキュメントをご確認ください。

ぜひお試しください!

お客様がTwilioのOpenAPI Specificationを活用して素晴らしいサービスを構築されることが、私たちの喜びです。🚀

Twilioチームへのフィードバックや超最新情報の入手をご希望の場合は、Twilio Insidersと呼ばれる新プログラムへの参加をご検討ください。