dianping-api 0.1.1 → 0.1.2
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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +14 -4
- data/lib/dianping/api.rb +17 -2
- data/lib/dianping/api/client.rb +2 -1
- data/lib/dianping/api/middle_ware.rb +5 -1
- data/lib/dianping/api/token.rb +1 -1
- data/lib/dianping/api/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8739ca18c627d07503c20dc80087fb335e4c67165490c301db372ec9a506168d
|
4
|
+
data.tar.gz: 97e6298fe7d94c9f78cd6ed25d9f8cfa39b88cf5054e9325bca77b40cdebb273
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ed02e94b7c8ff8e7d6a039ffe7466aeb15fb53dd459fc0dd045795cacddd32e6f77ff376c7e6cad39383e0a37ab7ca40fa24eff3f6f6ed342bbf1d8af7d3af6
|
7
|
+
data.tar.gz: 158b17cc9141e222e2c3e1d820747ddf678075035227eba2cae13e56f22605d717f7f6ebcdd12fdb5aa83e49cfee05a0f829f9f1f6f711a1ffed7f37418d5b44
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# Dianping::Api
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
TODO: Delete this and the text above, and describe your gem
|
3
|
+
美团点评北极星平台Open API SDK for Ruby
|
6
4
|
|
7
5
|
## Installation
|
8
6
|
|
@@ -22,7 +20,19 @@ Or install it yourself as:
|
|
22
20
|
|
23
21
|
## Usage
|
24
22
|
|
25
|
-
|
23
|
+
注册 https://open.dianping.com 按开发测试说明使用
|
24
|
+
|
25
|
+
```ruby
|
26
|
+
|
27
|
+
# redirect_url 专门给获取access_token (session)使用
|
28
|
+
client = Dianping::Api::Client.new 'app_key', 'app_secrent', redirect_url: 'https://example.org/callback'
|
29
|
+
|
30
|
+
# 公共请求参数会自动提供并签名
|
31
|
+
# 正常结果 `code 200` 以外的返回报文会抛出异常
|
32
|
+
body_json = client.post '/routers/xxxx', biz_key1: 1, biz_key2: 2
|
33
|
+
body_json = client.get '/routers/xxxx', url_key1: 1, url_key2: 2
|
34
|
+
|
35
|
+
```
|
26
36
|
|
27
37
|
## Development
|
28
38
|
|
data/lib/dianping/api.rb
CHANGED
@@ -1,12 +1,27 @@
|
|
1
1
|
require 'dianping/api/version'
|
2
2
|
require 'faraday'
|
3
|
+
require 'logger'
|
3
4
|
|
4
5
|
module Dianping
|
5
6
|
module Api
|
6
7
|
class TokenExpireError < Faraday::RetriableResponse; end
|
7
|
-
class TokenMissingError < StandardError; end
|
8
|
-
class UsageError < StandardError; end
|
9
8
|
class Error < StandardError; end
|
9
|
+
class TokenMissingError < Error; end
|
10
|
+
class UsageError < Error; end
|
11
|
+
|
12
|
+
def self.logger
|
13
|
+
@@logger ||= defined?(Rails) ? Rails.logger : ::Logger.new(STDOUT)
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.logger=(logger)
|
17
|
+
@@logger = logger
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.client
|
21
|
+
return @client = yield(Client) if block_given?
|
22
|
+
|
23
|
+
@client || raise(::Dianping::Api::Error, 'initialize client with block first')
|
24
|
+
end
|
10
25
|
|
11
26
|
module Modules; end
|
12
27
|
end
|
data/lib/dianping/api/client.rb
CHANGED
@@ -94,7 +94,8 @@ module Dianping
|
|
94
94
|
merged = share_params.merge(params || {}).dup
|
95
95
|
content = merged.to_a.sort.flatten.join.encode!('UTF-8')
|
96
96
|
# puts @secret + content
|
97
|
-
|
97
|
+
Api.logger.debug { format('content: %s', content) }
|
98
|
+
sign = Digest::MD5.hexdigest([@secret, content, @secret].compact.join)
|
98
99
|
merged.merge(sign: sign)
|
99
100
|
end
|
100
101
|
end
|
@@ -9,9 +9,11 @@ module Dianping
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def call(env)
|
12
|
+
Api.logger.debug { { request: env } }
|
12
13
|
check_session(env)
|
13
14
|
@app.call(env).on_complete do |response_env|
|
14
|
-
|
15
|
+
Api.logger.debug { { response: response_env } }
|
16
|
+
hash = MultiJson.load response_env.body, symbolize_keys: true
|
15
17
|
check_response(hash)
|
16
18
|
end
|
17
19
|
end
|
@@ -28,6 +30,8 @@ module Dianping
|
|
28
30
|
code = body[:code].to_i
|
29
31
|
msg = format('[%<code>d]%<msg>s', code: code, msg: body[:msg])
|
30
32
|
|
33
|
+
Api.logger.debug { { response: body, msg: msg } }
|
34
|
+
|
31
35
|
raise TokenExpireError, msg if code == 608
|
32
36
|
raise UsageError, msg if code >= 800
|
33
37
|
raise Error, msg unless code == 200
|
data/lib/dianping/api/token.rb
CHANGED
data/lib/dianping/api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dianping-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Wong
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|