Ruby HTTP
Objetives

HTTP
Hypertext Transfer Protocol

HTTP Methods

| Method | Action |
|---|---|
| GET | Read/receive data |
| POST | Create/publis data |
| PUT | Update data |
| PATCH | Patch data |
| DELETE | Delete data |
HTTP Status

| Method | Action |
|---|---|
| 200 | OK |
| 201 | Create |
| 204 | No content |
| 301 | Moved permanently |
| 400 | Bad request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
Success
Redirect
Client
Server
HTTParty

require 'httparty'
# Use the class methods to get down to business quickly
response = HTTParty.get(
'https://jsonplaceholder.typicode.com/users'
)
# p response
# p response.methods
p response.parsed_response
# p response.body
# p response.code
# p response.message
# p response.headers
# p JSON.parse(response.body, symbolize_names: true)
# response.parsed_response.each do |user|
# p user
# # p "="*5
# end
# puts JSON.parse(response.body, symbolize_names: true)
GET with HTTParty
require 'httparty'
class UserClient
include HTTParty
base_uri('https://jsonplaceholder.typicode.com/users')
def self.index
response = get("/")
JSON.parse(response.body, symbolize_names: true)
end
def self.show(id)
response = get("/#{id}")
JSON.parse(response.body, symbolize_names: true)
end
def self.create(user_data)
options = {
body: user_data.to_json,
headers: {
"Content-Type": "application/json"
}
}
response = post("/", options)
JSON.parse(response.body, symbolize_names: true)
end
def self.update(id, user_data)
options = {
body: user_data.to_json,
headers: {
"Content-Type": "application/json"
}
}
response = patch("/#{id}", options)
JSON.parse(response.body, symbolize_names: true)
end
def self.destroy(id)
response = delete("/#{id}")
JSON.parse(response.body, symbolize_names: true)
end
end
# p UserClient.index
# p UserClient.show(1)
# p UserClient.create({
# name: "Paulo",
# email: "paulo@codeable.la",
# phone: "987654321"
# })
# p UserClient.update(5, {
# name: "Paulo",
# email: "paulo@codeable.la",
# phone: "987654321"
# })
# p UserClient.destroy(1)
Using HTTParty with class
Ruby HTTP
By Paulo Tijero
Ruby HTTP
- 66