apigw 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +130 -0
- data/apigw.gemspec +27 -0
- data/lib/apigw.rb +9 -0
- data/lib/apigw/api_base.rb +53 -0
- data/lib/apigw/api_log.rb +24 -0
- data/lib/apigw/business_process.rb +37 -0
- data/lib/apigw/client.rb +113 -0
- data/lib/apigw/iam.rb +44 -0
- data/lib/apigw/logger.rb +61 -0
- data/lib/apigw/oauth.rb +22 -0
- data/lib/apigw/version.rb +3 -0
- metadata +152 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8493d32a5105e968cbe8a2386e0f6fc8f3b12914
|
4
|
+
data.tar.gz: f6fed6db1ba06db25395b3d7cb459348d6a6ef5d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1dd5ac799c8aa241091680fdf24b727c607d81978555ffb2495ec89a3185c8b668e91e04b389f49ee935d129a793679453fc42d7d22b0da8c6f7da5a910510ae
|
7
|
+
data.tar.gz: b07d677f426f6bdf24e35cce1c58155a32f8864aab60e861505040d65fc17f74397a079df1609d5de4a587ace7ce5cc917f91c613c8a604947a1f1149d4c0320
|
data/README.md
ADDED
@@ -0,0 +1,130 @@
|
|
1
|
+
NTT Communications API SDK(ruby)
|
2
|
+
===
|
3
|
+
|
4
|
+
このライブラリは、NTT Communications APIsと対話的にアクセスするための簡易的なラッパーを提供します。
|
5
|
+
各APIの仕様については、[デベロッパーポータル](https://developer.ntt.com/ja)のドキュメントを参照ください。
|
6
|
+
|
7
|
+
セットアップ
|
8
|
+
---
|
9
|
+
|
10
|
+
### Bundler での使用
|
11
|
+
|
12
|
+
Gemfile に下記を追記し、`bundle install`
|
13
|
+
|
14
|
+
```ruby
|
15
|
+
gem 'apigw'
|
16
|
+
```
|
17
|
+
|
18
|
+
システム要件
|
19
|
+
---
|
20
|
+
|
21
|
+
Ruby 2.0.0 以上
|
22
|
+
|
23
|
+
使い方
|
24
|
+
---
|
25
|
+
|
26
|
+
2015/10現在、クライアントは
|
27
|
+
|
28
|
+
* OAuth API
|
29
|
+
* Business Process API
|
30
|
+
* APILog API
|
31
|
+
* IAM API
|
32
|
+
|
33
|
+
の4つのAPIへのアクセスを提供します。
|
34
|
+
|
35
|
+
### クライアントの生成
|
36
|
+
|
37
|
+
クライアントの生成時には、エンドポイントの情報を記載したYAML形式の設定ファイルへのパスを指定します。
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
client = ApiGW::Client.new(config_path: 'path/to/config.yml', environment: 'development')
|
41
|
+
```
|
42
|
+
|
43
|
+
設定ファイル例:
|
44
|
+
|
45
|
+
```yaml
|
46
|
+
development:
|
47
|
+
host: "ホスト名"(e.g. 'https://api.ntt.com/')
|
48
|
+
api_version: "APIバージョン"(e.g. 'v1')
|
49
|
+
timeout: タイムアウト(ms)
|
50
|
+
verify_ssl: SSL証明書の検証を行うか(true / false)
|
51
|
+
debuggable: デバッグ情報を表示するか(true / false)
|
52
|
+
```
|
53
|
+
|
54
|
+
※ host と api_version は必須となります。
|
55
|
+
|
56
|
+
### アクセストークンの取得
|
57
|
+
|
58
|
+
[デベロッパーポータル](https://developer.ntt.com/ja) にて払い出されたコンシューマーキーとシークレットキーを指定します。
|
59
|
+
|
60
|
+
```ruby
|
61
|
+
response = client.oauth('コンシューマーキー', 'シークレットキー').access_token
|
62
|
+
access_token = response.body['accessToken']
|
63
|
+
```
|
64
|
+
|
65
|
+
全てのAPIのレスポンスは [Faraday::Response](https://github.com/lostisland/faraday/blob/master/lib/faraday/response.rb) オブジェクトで返却されます。
|
66
|
+
レスポンスのJSONは `Faraday::Response#body` からHash形式にパースされた状態で取得できます。
|
67
|
+
各APIのレスポンス仕様については、[デベロッパーポータル](https://developer.ntt.com/ja)のドキュメントを参照ください。
|
68
|
+
|
69
|
+
### Business Process API
|
70
|
+
|
71
|
+
OAuth API にて取得したアクセストークンとAPIパス、サービス名称を指定します。
|
72
|
+
|
73
|
+
```ruby
|
74
|
+
response = client.business_process('アクセストークン').get('contracts', 'サービス名称')
|
75
|
+
items = response.body['items']
|
76
|
+
```
|
77
|
+
|
78
|
+
情報の参照には `ApiGW::BusinessProcess#get(...)` を、各種オーダには `ApiGW::BusinessProcess#post(...)` を利用します。
|
79
|
+
|
80
|
+
### APILog API
|
81
|
+
|
82
|
+
OAuth API にて取得したアクセストークンと利用履歴の対象日を指定します。
|
83
|
+
|
84
|
+
```ruby
|
85
|
+
response = client.api_log('アクセストークン').get('日付(YYYYMMDD)')
|
86
|
+
records = response.body['Records']
|
87
|
+
```
|
88
|
+
|
89
|
+
### その他API
|
90
|
+
|
91
|
+
examples/を参考にしてください。
|
92
|
+
|
93
|
+
ApiGW::ApiBase の継承について
|
94
|
+
---
|
95
|
+
|
96
|
+
新しいAPIに対応したクラスを作成する場合は、`ApiGW::ApiBase`のサブクラスを実装します。
|
97
|
+
以下のドキュメント及び `ApiGW::BusinessProcess` や `ApiGW::ApiLog` を参考に実装してください。
|
98
|
+
|
99
|
+
### 実装が必要なクラスメソッド
|
100
|
+
|
101
|
+
#### `api_name()`
|
102
|
+
|
103
|
+
APIの名称を返すメソッドです。
|
104
|
+
|
105
|
+
`https://api.ntt.com/v1/xxxxxx/yyyyyy` の `xxxxxx` の部分を返します。
|
106
|
+
例えば `ApiGW::BusinessProcess` では `business-process` 、 `ApiGW:ApiLog` では `apilog` を返すよう実装されています。
|
107
|
+
|
108
|
+
api_name をオーバーライドしないと NotImplementedError が発生します。
|
109
|
+
|
110
|
+
#### `require_authorization?()`
|
111
|
+
|
112
|
+
このAPIに認証(アクセストークン)が必要かを返します。デフォルトでは false です。
|
113
|
+
|
114
|
+
trueを返すようにすると、リクエストヘッダーに `Authorization` を自動で付加するようになります。
|
115
|
+
|
116
|
+
### リクエスト時に使用するインスタンスメソッド
|
117
|
+
|
118
|
+
#### `XXX_request(path, opts = {})`
|
119
|
+
|
120
|
+
`get_request`, `post_request`, `put_request`, `delete_request`, `options_request` の5つが定義されています。
|
121
|
+
それぞれ GET, POST, PUT, DELETE, OPTIONS のリクエストを実行し、結果を返します。
|
122
|
+
|
123
|
+
`path` は `https://api.ntt.com/v1/xxxxxx/yyyyyy` の `yyyyyy` の部分を渡します。
|
124
|
+
`yyyyyy` に相当するパスがないAPIの場合、 `nil` を指定します。
|
125
|
+
|
126
|
+
|
127
|
+
ライセンス
|
128
|
+
---
|
129
|
+
Copyright © 2015 NTT Communications
|
130
|
+
[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
|
data/apigw.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'apigw/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "apigw"
|
8
|
+
spec.version = ApiGW::VERSION
|
9
|
+
spec.authors = ["NTT Communications APIGateway Teams"]
|
10
|
+
spec.email = ["apigateway@ntt.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{NTT Communications APIGateway SDK}
|
13
|
+
spec.description = %q{NTT Communications APIGateway SDK}
|
14
|
+
spec.homepage = "https://github.com/nttcom/apigw-ruby-sdk"
|
15
|
+
|
16
|
+
spec.files = Dir["README.md", "lib/**/*.rb", "*.gemspec" ]
|
17
|
+
spec.require_paths = ["lib"]
|
18
|
+
|
19
|
+
spec.add_development_dependency "bundler", "~> 1.10"
|
20
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
21
|
+
spec.add_development_dependency "rspec"
|
22
|
+
spec.add_development_dependency "guard-rspec"
|
23
|
+
spec.add_development_dependency "pry"
|
24
|
+
|
25
|
+
spec.add_dependency "faraday"
|
26
|
+
spec.add_dependency "faraday_middleware"
|
27
|
+
end
|
data/lib/apigw.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
module ApiGW
|
3
|
+
|
4
|
+
class ApiBase
|
5
|
+
|
6
|
+
class << self
|
7
|
+
def api_name
|
8
|
+
raise NotImplementedError
|
9
|
+
end
|
10
|
+
|
11
|
+
def require_authorization?
|
12
|
+
false
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def initialize(client, opts = {})
|
17
|
+
@client = client
|
18
|
+
@consumer_key = opts[:consumer_key]
|
19
|
+
@secret_key = opts[:secret_key]
|
20
|
+
@access_token = opts[:access_token]
|
21
|
+
end
|
22
|
+
|
23
|
+
# メソッドをまとめて定義
|
24
|
+
[:get, :post, :put, :delete, :options].each do |verb|
|
25
|
+
define_method "#{verb}_request" do |path, opts = {}|
|
26
|
+
request verb, path, opts
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def request(method, path, opts = {})
|
33
|
+
clz = self.class
|
34
|
+
|
35
|
+
url = path.nil? ? clz.api_name : "#{clz.api_name}/#{path}"
|
36
|
+
|
37
|
+
opts_copy = Marshal.load Marshal.dump(opts)
|
38
|
+
if clz.require_authorization?
|
39
|
+
apply_authorization_header_to_opts! opts_copy
|
40
|
+
end
|
41
|
+
|
42
|
+
@client.send_request method, url, opts_copy
|
43
|
+
end
|
44
|
+
|
45
|
+
def apply_authorization_header_to_opts!(opts)
|
46
|
+
headers = opts[:headers] || {}
|
47
|
+
headers['Authorization'] = "Bearer #{@access_token}"
|
48
|
+
opts[:headers] = headers
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module ApiGW
|
2
|
+
|
3
|
+
class ApiLog < ApiBase
|
4
|
+
|
5
|
+
class << self
|
6
|
+
def api_name
|
7
|
+
'apilog'
|
8
|
+
end
|
9
|
+
|
10
|
+
def require_authorization?
|
11
|
+
true
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def get(target_date)
|
16
|
+
querys = {
|
17
|
+
targetDate: target_date
|
18
|
+
}
|
19
|
+
get_request nil, querys: querys
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module ApiGW
|
2
|
+
|
3
|
+
class BusinessProcess < ApiBase
|
4
|
+
|
5
|
+
class << self
|
6
|
+
def api_name
|
7
|
+
'business-process'
|
8
|
+
end
|
9
|
+
|
10
|
+
def require_authorization?
|
11
|
+
true
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def get(path, service_name, opts = {})
|
16
|
+
get_request path, apply_service_name_to_opts(opts, service_name)
|
17
|
+
end
|
18
|
+
|
19
|
+
def post(path, service_name, data, opts = {})
|
20
|
+
opts_copy = Marshal.load Marshal.dump(opts)
|
21
|
+
opts_data = opts_copy[:data] || {}
|
22
|
+
opts_copy[:data] = opts_data.merge data
|
23
|
+
post_request path, apply_service_name_to_opts(opts_copy, service_name)
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def apply_service_name_to_opts(opts, service_name)
|
29
|
+
opts_copy = Marshal.load Marshal.dump(opts)
|
30
|
+
querys = opts_copy[:querys] || {}
|
31
|
+
querys['serviceName'] = service_name
|
32
|
+
opts_copy[:querys] = querys
|
33
|
+
return opts_copy
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
data/lib/apigw/client.rb
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
module ApiGW
|
4
|
+
|
5
|
+
require 'apigw/logger'
|
6
|
+
require 'yaml'
|
7
|
+
require 'faraday'
|
8
|
+
require 'faraday_middleware'
|
9
|
+
|
10
|
+
class Client
|
11
|
+
|
12
|
+
DEFAULT_CONFIG = {
|
13
|
+
timeout: 30000,
|
14
|
+
verify_ssl: false,
|
15
|
+
debuggable: false
|
16
|
+
}
|
17
|
+
|
18
|
+
def initialize(opts = {})
|
19
|
+
if opts.include?(:config_path) && opts.include?(:environment)
|
20
|
+
# YAMLから取得したHashはキーがシンボルではなく文字列なので、キーをシンボルに直す必要あり
|
21
|
+
cfg_all = YAML.load_file opts[:config_path]
|
22
|
+
cfg = cfg_all[opts[:environment].to_s]
|
23
|
+
cfg.keys.each do |key|
|
24
|
+
cfg[key.to_sym] = cfg.delete key
|
25
|
+
end
|
26
|
+
config = cfg
|
27
|
+
elsif opts.include?(:config)
|
28
|
+
# こっちはキーがシンボルである想定
|
29
|
+
config = opts[:config]
|
30
|
+
else
|
31
|
+
config = {}
|
32
|
+
end
|
33
|
+
|
34
|
+
@host = config[:host]
|
35
|
+
if @host.nil?
|
36
|
+
raise "Configuration 'host' is not found."
|
37
|
+
end
|
38
|
+
|
39
|
+
@api_version = config[:api_version]
|
40
|
+
if @api_version.nil?
|
41
|
+
raise "Configuration 'api_version' is not found."
|
42
|
+
end
|
43
|
+
|
44
|
+
@verify_ssl = config[:verify_ssl] || DEFAULT_CONFIG[:verify_ssl]
|
45
|
+
@timeout = config[:timeout] || DEFAULT_CONFIG[:timeout]
|
46
|
+
@debuggable = config[:debuggable] || DEFAULT_CONFIG[:debuggable]
|
47
|
+
end
|
48
|
+
|
49
|
+
def oauth(consumer_key, secret_key)
|
50
|
+
ApiGW::OAuth.new self, consumer_key: consumer_key, secret_key: secret_key
|
51
|
+
end
|
52
|
+
|
53
|
+
def business_process(access_token)
|
54
|
+
ApiGW::BusinessProcess.new self, access_token: access_token
|
55
|
+
end
|
56
|
+
|
57
|
+
def api_log(access_token)
|
58
|
+
ApiGW::ApiLog.new self, access_token: access_token
|
59
|
+
end
|
60
|
+
|
61
|
+
def iam(access_token)
|
62
|
+
ApiGW::Iam.new self, access_token: access_token
|
63
|
+
end
|
64
|
+
|
65
|
+
def send_request(method, path, opts = {})
|
66
|
+
opts_copy = Marshal.load Marshal.dump(opts)
|
67
|
+
querys = opts_copy[:querys]
|
68
|
+
data = opts_copy[:data]
|
69
|
+
headers = opts_copy[:headers] || {}
|
70
|
+
|
71
|
+
headers[:accept] ||= "application/json"
|
72
|
+
headers[:accept_encoding] ||= "gzip, deflate"
|
73
|
+
headers[:connection] ||= "Keep-Alive"
|
74
|
+
headers[:host] ||= @host.split("://")[1]
|
75
|
+
|
76
|
+
unless method == :get
|
77
|
+
if data
|
78
|
+
headers[:content_length] ||= JSON.generate(data).length.to_s
|
79
|
+
else
|
80
|
+
headers[:content_length] ||= "0"
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
headers[:user_agent] ||= "apigw/#{VERSION}"
|
85
|
+
|
86
|
+
connection = Faraday.new("#{@host}/#{@api_version}") do |c|
|
87
|
+
# 順番を変えると正しく動かないので順番を変えないこと
|
88
|
+
c.request :json
|
89
|
+
c.response :json
|
90
|
+
if @debuggable
|
91
|
+
# デバッグモード時はカスタムロガーとカスタムアダプターを使用
|
92
|
+
c.use ApiGW::Logger
|
93
|
+
c.use ApiGW::NetHttp
|
94
|
+
else
|
95
|
+
c.adapter :net_http
|
96
|
+
end
|
97
|
+
c.ssl.verify = @verify_ssl
|
98
|
+
end
|
99
|
+
|
100
|
+
# Faradayのタイムアウトは秒単位
|
101
|
+
timeout_sec = @timeout / 1000
|
102
|
+
response = connection.run_request method, path, data, headers do |r|
|
103
|
+
r.params = querys unless querys.nil?
|
104
|
+
r.options.timeout = timeout_sec
|
105
|
+
r.options.open_timeout = timeout_sec
|
106
|
+
end
|
107
|
+
|
108
|
+
return response
|
109
|
+
end
|
110
|
+
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
data/lib/apigw/iam.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
module ApiGW
|
2
|
+
|
3
|
+
class Iam < ApiBase
|
4
|
+
|
5
|
+
class << self
|
6
|
+
def api_name
|
7
|
+
'iam'
|
8
|
+
end
|
9
|
+
|
10
|
+
def require_authorization?
|
11
|
+
true
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def get(path, opts = {})
|
16
|
+
get_request path, opts
|
17
|
+
end
|
18
|
+
|
19
|
+
def post(path, data)
|
20
|
+
opts_copy = {}
|
21
|
+
opts_data = opts_copy[:data] || {}
|
22
|
+
opts_copy[:data] = data
|
23
|
+
post_request path, opts_copy
|
24
|
+
end
|
25
|
+
|
26
|
+
def put(path)
|
27
|
+
put_request path
|
28
|
+
end
|
29
|
+
|
30
|
+
def delete(path)
|
31
|
+
delete_request path
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def apply_service_name_to_opts(opts)
|
37
|
+
opts_copy = Marshal.load Marshal.dump(opts)
|
38
|
+
querys = opts_copy[:querys] || {}
|
39
|
+
opts_copy[:querys] = querys
|
40
|
+
return opts_copy
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
data/lib/apigw/logger.rb
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
module ApiGW
|
3
|
+
|
4
|
+
require 'faraday'
|
5
|
+
require 'json'
|
6
|
+
|
7
|
+
class NetHttp < Faraday::Adapter::NetHttp
|
8
|
+
# オーバーライドして :http_version と :message をenvに入れておく
|
9
|
+
def perform_request(http, env)
|
10
|
+
http_response = super
|
11
|
+
env[:http_version] = http_response.http_version
|
12
|
+
env[:message] = http_response.message
|
13
|
+
http_response
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class Logger < Faraday::Response::Middleware
|
18
|
+
|
19
|
+
def call(env)
|
20
|
+
lines = [ "" ]
|
21
|
+
if env.url.query.nil?
|
22
|
+
path = env.url.path
|
23
|
+
else
|
24
|
+
path = "#{env.url.path}?#{env.url.query}"
|
25
|
+
end
|
26
|
+
lines << "#{env.method.upcase} #{path} HTTP/1.1"
|
27
|
+
env.request_headers.keys.sort.each do |key|
|
28
|
+
lines << "#{key}: #{env.request_headers[key]}"
|
29
|
+
end
|
30
|
+
lines << pretty_json(env.body)
|
31
|
+
lines << ""
|
32
|
+
|
33
|
+
@app.call(env).on_complete do
|
34
|
+
lines << "HTTP/#{env[:http_version]} #{env.status} #{env[:message]}"
|
35
|
+
env.response_headers.keys.sort.each do |key|
|
36
|
+
lines << "#{key}: #{env.response_headers[key]}"
|
37
|
+
end
|
38
|
+
lines << pretty_json(env.body)
|
39
|
+
puts lines.join "\n"
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def pretty_json(input)
|
47
|
+
if input.nil?
|
48
|
+
return ''
|
49
|
+
end
|
50
|
+
begin
|
51
|
+
# TODO inputがunicodeエスケープされててもパースされてしまう
|
52
|
+
return JSON.pretty_generate(JSON.parse(input))
|
53
|
+
rescue
|
54
|
+
# pass
|
55
|
+
end
|
56
|
+
return input
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
data/lib/apigw/oauth.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
module ApiGW
|
2
|
+
|
3
|
+
class OAuth < ApiBase
|
4
|
+
|
5
|
+
class << self
|
6
|
+
def api_name
|
7
|
+
'oauth'
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def access_token
|
12
|
+
data = {
|
13
|
+
clientId: @consumer_key,
|
14
|
+
clientSecret: @secret_key,
|
15
|
+
grantType: 'client_credentials'
|
16
|
+
}
|
17
|
+
post_request 'accesstokens', data: data
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
metadata
ADDED
@@ -0,0 +1,152 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: apigw
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- NTT Communications APIGateway Teams
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-11-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.10'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.10'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: guard-rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: faraday
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: faraday_middleware
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
description: NTT Communications APIGateway SDK
|
112
|
+
email:
|
113
|
+
- apigateway@ntt.com
|
114
|
+
executables: []
|
115
|
+
extensions: []
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- README.md
|
119
|
+
- apigw.gemspec
|
120
|
+
- lib/apigw.rb
|
121
|
+
- lib/apigw/api_base.rb
|
122
|
+
- lib/apigw/api_log.rb
|
123
|
+
- lib/apigw/business_process.rb
|
124
|
+
- lib/apigw/client.rb
|
125
|
+
- lib/apigw/iam.rb
|
126
|
+
- lib/apigw/logger.rb
|
127
|
+
- lib/apigw/oauth.rb
|
128
|
+
- lib/apigw/version.rb
|
129
|
+
homepage: https://github.com/nttcom/apigw-ruby-sdk
|
130
|
+
licenses: []
|
131
|
+
metadata: {}
|
132
|
+
post_install_message:
|
133
|
+
rdoc_options: []
|
134
|
+
require_paths:
|
135
|
+
- lib
|
136
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - ">="
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '0'
|
141
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
requirements: []
|
147
|
+
rubyforge_project:
|
148
|
+
rubygems_version: 2.2.2
|
149
|
+
signing_key:
|
150
|
+
specification_version: 4
|
151
|
+
summary: NTT Communications APIGateway SDK
|
152
|
+
test_files: []
|