Project

apigw

0.0
No commit activity in last 3 years
No release in over 3 years
NTT Communications APIGateway SDK
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.10
>= 0
~> 10.0
>= 0

Runtime

 Project Readme

NTT Communications API SDK(ruby)

このライブラリは、NTT Communications APIsと対話的にアクセスするための簡易的なラッパーを提供します。 各APIの仕様については、デベロッパーポータルのドキュメントを参照ください。

セットアップ

Bundler での使用

Gemfile に下記を追記し、bundle install

gem 'apigw'

gem install

gem install apigw

参考: https://rubygems.org/gems/apigw

システム要件

Ruby 2.0.0 以上

使い方

2015/10現在、クライアントは

  • OAuth API
  • Business Process API
  • APILog API
  • IAM API

の4つのAPIへのアクセスを提供します。

クライアントの生成

クライアントの生成時には、エンドポイントの情報を記載したYAML形式の設定ファイルへのパスを指定します。

client = ApiGW::Client.new(config_path: 'path/to/config.yml', environment: 'development')

設定ファイル例:

development:
  host: "ホスト名"(e.g. 'https://api.ntt.com/')
  api_version: "APIバージョン"(e.g. 'v1')
  timeout: タイムアウト(ms)
  verify_ssl: SSL証明書の検証を行うか(true / false)
  debuggable: デバッグ情報を表示するか(true / false)

※ host と api_version は必須となります。

アクセストークンの取得

デベロッパーポータル にて払い出されたコンシューマーキーとシークレットキーを指定します。

response = client.oauth('コンシューマーキー', 'シークレットキー').access_token
access_token = response.body['accessToken']

全てのAPIのレスポンスは Faraday::Response オブジェクトで返却されます。 レスポンスのJSONは Faraday::Response#body からHash形式にパースされた状態で取得できます。 各APIのレスポンス仕様については、デベロッパーポータルのドキュメントを参照ください。

Business Process API

OAuth API にて取得したアクセストークンとAPIパス、サービス名称を指定します。

response = client.business_process('アクセストークン').get('contracts', 'サービス名称')
items = response.body['items']

情報の参照には ApiGW::BusinessProcess#get(...) を、各種オーダには ApiGW::BusinessProcess#post(...) を利用します。

APILog API

OAuth API にて取得したアクセストークンと利用履歴の対象日を指定します。

response = client.api_log('アクセストークン').get('日付(YYYYMMDD)')
records = response.body['Records']

その他API

examples/を参考にしてください。

ApiGW::ApiBase の継承について

新しいAPIに対応したクラスを作成する場合は、ApiGW::ApiBaseのサブクラスを実装します。 以下のドキュメント及び ApiGW::BusinessProcessApiGW::ApiLog を参考に実装してください。

実装が必要なクラスメソッド

api_name()

APIの名称を返すメソッドです。

https://api.ntt.com/v1/xxxxxx/yyyyyyxxxxxx の部分を返します。 例えば ApiGW::BusinessProcess では business-processApiGW:ApiLog では apilog を返すよう実装されています。

api_name をオーバーライドしないと NotImplementedError が発生します。

require_authorization?()

このAPIに認証(アクセストークン)が必要かを返します。デフォルトでは false です。

trueを返すようにすると、リクエストヘッダーに Authorization を自動で付加するようになります。

リクエスト時に使用するインスタンスメソッド

XXX_request(path, opts = {})

get_request, post_request, put_request, delete_request, options_request の5つが定義されています。 それぞれ GET, POST, PUT, DELETE, OPTIONS のリクエストを実行し、結果を返します。

pathhttps://api.ntt.com/v1/xxxxxx/yyyyyyyyyyyy の部分を渡します。 yyyyyy に相当するパスがないAPIの場合、 nil を指定します。

ライセンス

Copyright © 2015 NTT Communications
Apache License, Version 2.0