json_requester 1.1.3 → 2.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +30 -2
  3. data/lib/json_requester.rb +7 -1
  4. metadata +56 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b4f982cccc8a4c27d2013a2c007b907c0cbf3f6aa05eff09464bba82cc6cd59f
4
- data.tar.gz: f36d85249ef2b341aeff0435da4c3398d10e8c7146f2233c7c35f11a61b588c3
3
+ metadata.gz: 0fd8ae942fd37086c42c534ab79aaba5fd200fc76bd59c0572ff0c33539a43e9
4
+ data.tar.gz: 6e1cd414c18298f6efd2da5fdebcebb47e322956f5e9567e47277d1990edf3e3
5
5
  SHA512:
6
- metadata.gz: 02bcd235be1471113c0b0c1640bad36f308a839e7d3143a072877cd124bec70af77079093934e97ace2a85db5bcdd6d7ab2ec2029dd05dee774f9dbabcc741e2
7
- data.tar.gz: 86c13263c31f9174cb3a0ba66f0283958bc783f80c635649d28ee60b0072c2cc3b92ec931010a91a6507e1a3ecc44e6cde5217659db152ba5bbd33a11c86afbe
6
+ metadata.gz: 8d4d4d2b91300b3804466e2130703fd1bbf5a1a2c7b68acbfc6cab7929f4b9cf858404c635b701bca289cf6c6b11e67a8b4506418e5fdad86922415aec30d0d7
7
+ data.tar.gz: 390a5d516a0156be37887309382661a31bf0d24047e605f89d4030338d8c8d11fcde8f249ec3cd2edd3e6681a9f5a4bff146be594e81d21d3321bc06c554aa55
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,29 @@ $ 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
+ # If need_response_header is true, you can access response headers
51
+ puts res['headers'] if res.key?('headers')
52
+
53
+ # For form-encoded requests (application/x-www-form-urlencoded)
54
+ form_res = requester.form_send(:post, '/post', params, headers)
55
+
56
+ # For file uploads or multipart form requests
57
+ # First initialize with multipart: true
58
+ multipart_requester = JsonRequester.new(host, multipart: true)
59
+
60
+ # Then prepare your payload with file objects
61
+ upload_params = {
62
+ file: Faraday::Multipart::FilePart.new('path/to/file.txt', 'text/plain'),
63
+ description: 'File upload example'
64
+ }
65
+
66
+ # Send multipart request
67
+ upload_res = multipart_requester.multipart_form_send(:post, '/upload_path', upload_params, headers)
40
68
  ```
@@ -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(url: host, ssl: { verify: @ssl_verify }) do |faraday|
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,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_requester
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - JiaRou Lee
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-10-28 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: faraday
@@ -16,20 +15,34 @@ dependencies:
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: '1.10'
18
+ version: '2.0'
20
19
  - - ">="
21
20
  - !ruby/object:Gem::Version
22
- version: 1.10.3
21
+ version: 2.0.1
23
22
  type: :runtime
24
23
  prerelease: false
25
24
  version_requirements: !ruby/object:Gem::Requirement
26
25
  requirements:
27
26
  - - "~>"
28
27
  - !ruby/object:Gem::Version
29
- version: '1.10'
28
+ version: '2.0'
30
29
  - - ">="
31
30
  - !ruby/object:Gem::Version
32
- version: 1.10.3
31
+ version: 2.0.1
32
+ - !ruby/object:Gem::Dependency
33
+ name: faraday-multipart
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - "~>"
37
+ - !ruby/object:Gem::Version
38
+ version: 1.1.0
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - "~>"
44
+ - !ruby/object:Gem::Version
45
+ version: 1.1.0
33
46
  - !ruby/object:Gem::Dependency
34
47
  name: pry
35
48
  requirement: !ruby/object:Gem::Requirement
@@ -44,6 +57,40 @@ dependencies:
44
57
  - - "~>"
45
58
  - !ruby/object:Gem::Version
46
59
  version: 0.14.2
60
+ - !ruby/object:Gem::Dependency
61
+ name: rspec
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '3.0'
67
+ type: :development
68
+ prerelease: false
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '3.0'
74
+ - !ruby/object:Gem::Dependency
75
+ name: webmock
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '3.25'
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 3.25.1
84
+ type: :development
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '3.25'
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: 3.25.1
47
94
  description: wrapper of faraday
48
95
  email: laura34963@kdanmobile.com
49
96
  executables: []
@@ -59,7 +106,6 @@ licenses:
59
106
  metadata:
60
107
  source_code_uri: https://github.com/kdan-mobile-software-ltd/json_requester
61
108
  changelog_uri: https://github.com/kdan-mobile-software-ltd/json_requester/blob/master/CHANGELOG.md
62
- post_install_message:
63
109
  rdoc_options:
64
110
  - "--charset=UTF-8"
65
111
  require_paths:
@@ -68,15 +114,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
68
114
  requirements:
69
115
  - - ">="
70
116
  - !ruby/object:Gem::Version
71
- version: 2.5.1
117
+ version: 3.0.0
72
118
  required_rubygems_version: !ruby/object:Gem::Requirement
73
119
  requirements:
74
120
  - - ">="
75
121
  - !ruby/object:Gem::Version
76
122
  version: '0'
77
123
  requirements: []
78
- rubygems_version: 3.5.16
79
- signing_key:
124
+ rubygems_version: 3.6.9
80
125
  specification_version: 4
81
126
  summary: Basic Wrapper of Faraday
82
127
  test_files: []