json_requester 1.1.3 → 2.0.0
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/README.md +31 -2
- data/lib/json_requester.rb +7 -1
- metadata +55 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7972e8a9100423878e0bef1e81ad3417638e0f449740651ee1395403b855b54a
|
4
|
+
data.tar.gz: 424e1bf4d8071f45db297d758a6056ff7ad90626fb695e129498570e579d6be1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61c9fec395d7e73015417a9dfd48d2445593da9f938286432123cf755e05a340a3c6d2b89436e473a351229c0e4220389cf18d30bbcb555967bfd1b2e96fd5e0
|
7
|
+
data.tar.gz: 7ff57c6dd3f5ba19c55fdfb269eb8f017f38cb27eb62946255806e656c333b948bc022044d45de8005b92a53f977423b7d0e7a7b423edc7a477b1bfd5e4476e6
|
data/README.md
CHANGED
@@ -4,16 +4,25 @@
|
|
4
4
|
|
5
5
|
### Install
|
6
6
|
|
7
|
+
If you want to use faraday 1.x version, install json_requester 1.x version:
|
7
8
|
```bash
|
8
|
-
$ gem install json_requester
|
9
|
+
$ gem install json_requester -v '~> 1.0'
|
10
|
+
```
|
11
|
+
|
12
|
+
If you want to use faraday 2.x version, install json_requester 2.x version:
|
13
|
+
```bash
|
14
|
+
$ gem install json_requester -v '~> 2.0'
|
9
15
|
```
|
10
16
|
|
11
17
|
### How to Use
|
12
18
|
|
13
19
|
```ruby
|
20
|
+
# initialize the JsonRequester class
|
14
21
|
host = 'http://httpbingo.org'
|
15
22
|
# `timeout` at Faraday gem default is 60 secs.
|
16
23
|
# `user_agent` at Faraday gem default is like "Faraday v1.10.0", it would be deep_merge at Faraday default setting.
|
24
|
+
# `multipart` option enables multipart form requests (for file uploads), default is false
|
25
|
+
# `ssl_verify` controls SSL certificate verification, default is true
|
17
26
|
requester = JsonRequester.new(host, timeout: 120, user_agent: 'My Agent 1.2')
|
18
27
|
|
19
28
|
http_method = :get # :get / :post / :put / :delete
|
@@ -31,10 +40,30 @@ $ gem install json_requester
|
|
31
40
|
# other methods: `form_send`, `multipart_form_send`
|
32
41
|
# `sort_params` at Faraday gem default is true.
|
33
42
|
# `content_type_charset` default is 'utf-8', this will add ; charset=utf-8 after `Content-Type` header (ex. `Content-Type=application/json; charset=utf-8`).
|
43
|
+
# `need_response_header` when set to true will include response headers in the result
|
34
44
|
res = requester.http_send(http_method, path, params, headers, sort_params: true, content_type_charset: 'utf-8')
|
35
45
|
|
36
46
|
# http response code
|
37
47
|
puts res['status'] # 200, 404, .. etc
|
38
48
|
# the response JSON body
|
39
|
-
puts res['body'] # { foo: 'bar' }
|
49
|
+
puts res['body'] # { foo: 'bar' }
|
50
|
+
|
51
|
+
# If need_response_header is true, you can access response headers
|
52
|
+
puts res['headers'] if res.key?('headers')
|
53
|
+
|
54
|
+
# For form-encoded requests (application/x-www-form-urlencoded)
|
55
|
+
form_res = requester.form_send(:post, '/post', params, headers)
|
56
|
+
|
57
|
+
# For file uploads or multipart form requests
|
58
|
+
# First initialize with multipart: true
|
59
|
+
multipart_requester = JsonRequester.new(host, multipart: true)
|
60
|
+
|
61
|
+
# Then prepare your payload with file objects
|
62
|
+
upload_params = {
|
63
|
+
file: Faraday::Multipart::FilePart.new('path/to/file.txt', 'text/plain'),
|
64
|
+
description: 'File upload example'
|
65
|
+
}
|
66
|
+
|
67
|
+
# Send multipart request
|
68
|
+
upload_res = multipart_requester.multipart_form_send(:post, '/upload_path', upload_params, headers)
|
40
69
|
```
|
data/lib/json_requester.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'faraday'
|
2
|
+
require 'faraday/multipart'
|
2
3
|
require 'json'
|
3
4
|
|
4
5
|
class JsonRequester
|
@@ -75,8 +76,12 @@ class JsonRequester
|
|
75
76
|
# https://lostisland.github.io/faraday/#/customization/index?id=order-of-parameters
|
76
77
|
Faraday::NestedParamsEncoder.sort_params = sort_params # faraday default is true
|
77
78
|
Faraday.default_connection_options = { headers: { user_agent: @user_agent } } unless @user_agent.empty?
|
79
|
+
options = {
|
80
|
+
url: host,
|
81
|
+
ssl: { verify: @ssl_verify }
|
82
|
+
}
|
78
83
|
|
79
|
-
Faraday.new(
|
84
|
+
Faraday.new(options) do |faraday|
|
80
85
|
faraday.request :multipart if @multipart # multipart form POST request
|
81
86
|
faraday.request :url_encoded # form-encode POST params
|
82
87
|
faraday.response :logger # log requests to $stdout
|
@@ -112,6 +117,7 @@ class JsonRequester
|
|
112
117
|
def object_blank?(object)
|
113
118
|
# Ref: https://github.com/rails/rails/blob/v7.1.4.2/activesupport/lib/active_support/core_ext/object/blank.rb#L18
|
114
119
|
# active_support blank? method
|
120
|
+
return true if object.nil?
|
115
121
|
object.respond_to?(:empty?) ? !!object.empty? : false
|
116
122
|
end
|
117
123
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: json_requester
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- JiaRou Lee
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-06-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -16,20 +16,34 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.0'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
22
|
+
version: 2.0.1
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
29
|
+
version: '2.0'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
32
|
+
version: 2.0.1
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: faraday-multipart
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 1.1.0
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 1.1.0
|
33
47
|
- !ruby/object:Gem::Dependency
|
34
48
|
name: pry
|
35
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,6 +58,40 @@ dependencies:
|
|
44
58
|
- - "~>"
|
45
59
|
- !ruby/object:Gem::Version
|
46
60
|
version: 0.14.2
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rspec
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '3.0'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '3.0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: webmock
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '3.25'
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: 3.25.1
|
85
|
+
type: :development
|
86
|
+
prerelease: false
|
87
|
+
version_requirements: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - "~>"
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '3.25'
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: 3.25.1
|
47
95
|
description: wrapper of faraday
|
48
96
|
email: laura34963@kdanmobile.com
|
49
97
|
executables: []
|
@@ -68,7 +116,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
68
116
|
requirements:
|
69
117
|
- - ">="
|
70
118
|
- !ruby/object:Gem::Version
|
71
|
-
version:
|
119
|
+
version: 3.0.0
|
72
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
121
|
requirements:
|
74
122
|
- - ">="
|