Skip to content

Commit

Permalink
Merge pull request #2 from gominima/feat--cleaner-api
Browse files Browse the repository at this point in the history
Feat: cleaner api
  • Loading branch information
apoorvcodes authored Feb 27, 2022
2 parents 6ac1297 + 4e5d41d commit 350e5d6
Show file tree
Hide file tree
Showing 4 changed files with 101 additions and 222 deletions.
54 changes: 8 additions & 46 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,61 +18,23 @@ package main

import (
"fmt"

"github.com/gominima/go-requests"
)

func main() {
client := requests.NewRequest("https://random-data-api.com/api/users/random_user", make(map[string]interface{}), make(map[string]string))
res, err := client.Get()
resp, err := goquests.Get(goquests.Request{
URL: "https://random-data-api.com/api/users/random_user",
Data: make(map[string]interface{}),
Headers: make(map[string]string),
})
if err != nil {
panic(err)
}
fmt.Println(res.Body)
//response would be something like this
/*
{
"id": 5105,
"uid": "58718d5d-456f-45ac-ac0a-fbda86892afd",
"password": "RyhWmkV0TH",
"first_name": "Bart",
"last_name": "Brekke",
"username": "bart.brekke",
"email": "bart.brekke@email.com",
"avatar": "https://robohash.org/quaeratipsumiste.png?size=300x300&set=set1",
"gender": "Non-binary",
"phone_number": "+1-268 1-580-929-3581",
"social_insurance_number": "355857970",
"date_of_birth": "1982-09-08",
"employment": {
"title": "Community-Services Planner",
"key_skill": "Organisation"
},
"address": {
"city": "Hyattside",
"street_name": "Erdman Loop",
"street_address": "93982 Frederick Lake",
"zip_code": "86334",
"state": "West Virginia",
"country": "United States",
"coordinates": {
"lat": -82.88119017206014,
"lng": 150.2430514904285
}
},
"credit_card": {
"cc_number": "4198-3576-9309-1264"
},
"subscription": {
"plan": "Bronze",
"status": "Idle",
"payment_method": "Bitcoins",
"term": "Monthly"
}
}
**/
fmt.Print(resp.Body)
}
}


```

## ❓Why Go-requests
Expand Down
52 changes: 7 additions & 45 deletions _example/fetch.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,52 +6,14 @@ import (
)

func main() {
client := requests.NewRequest("https://random-data-api.com/api/users/random_user", make(map[string]interface{}), make(map[string]string))
res, err := client.Get()
resp, err := goquests.Get(goquests.Request{
URL: "https://random-data-api.com/api/users/random_user",
Data: make(map[string]interface{}),
Headers: make(map[string]string),
})
if err != nil {
panic(err)
}
fmt.Println(res.Body)
//response would be something like this
/*
{
"id": 5105,
"uid": "58718d5d-456f-45ac-ac0a-fbda86892afd",
"password": "RyhWmkV0TH",
"first_name": "Bart",
"last_name": "Brekke",
"username": "bart.brekke",
"email": "bart.brekke@email.com",
"avatar": "https://robohash.org/quaeratipsumiste.png?size=300x300&set=set1",
"gender": "Non-binary",
"phone_number": "+1-268 1-580-929-3581",
"social_insurance_number": "355857970",
"date_of_birth": "1982-09-08",
"employment": {
"title": "Community-Services Planner",
"key_skill": "Organisation"
},
"address": {
"city": "Hyattside",
"street_name": "Erdman Loop",
"street_address": "93982 Frederick Lake",
"zip_code": "86334",
"state": "West Virginia",
"country": "United States",
"coordinates": {
"lat": -82.88119017206014,
"lng": 150.2430514904285
}
},
"credit_card": {
"cc_number": "4198-3576-9309-1264"
},
"subscription": {
"plan": "Bronze",
"status": "Idle",
"payment_method": "Bitcoins",
"term": "Monthly"
}
}
**/
fmt.Print(resp.Body)

}
131 changes: 0 additions & 131 deletions app.go

This file was deleted.

86 changes: 86 additions & 0 deletions goquests.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
package goquests

import (
"bytes"
"encoding/json"
"net/http"
)

type Request struct {
URL string
Data map[string]interface{}
Headers map[string]string
}

type Response struct {
Status string
Headers interface{}
Body map[string]interface{}
}

func NewRequest(method string, r Request) (Response, error) {
postBody, _ := json.Marshal(r.Data)
Body := bytes.NewBuffer(postBody)
req, err := http.NewRequest(method, r.URL, Body)
if err != nil {
return Response{}, err
}
for key, value := range r.Headers {
req.Header.Set(key, value)
}
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
rawresp, err := client.Do(req)
if err != nil {
return Response{}, err
}
defer rawresp.Body.Close()
response := Response{}
response.Status = rawresp.Status
response.Headers = rawresp.Header
var body map[string]interface{}
json.NewDecoder(rawresp.Body).Decode(&body)
response.Body = body
return response, nil
}

func Post(option Request) (Response, error) {
response, err := NewRequest("POST", option)
return response, err
}

/***/
func Get(option Request) (Response, error) {
response, err := NewRequest("GET", option)
return response, err
}

func Put(option Request) (Response, error) {
response, err := NewRequest("PUT", option)
return response, err
}

func Patch(option Request) (Response, error) {
response, err := NewRequest("PATCH", option)
return response, err
}

func Delete(option Request) (Response, error) {
response, err := NewRequest("DELETE", option)
return response, err
}

func Trace(option Request) (Response, error) {
response, err := NewRequest("TRACE", option)
return response, err
}

func Options(option Request) (Response, error) {
response, err := NewRequest("OPTIONS", option)
return response, err
}

func Head(option Request) (Response, error) {
response, err := NewRequest("Head", option)
return response, err
}

0 comments on commit 350e5d6

Please sign in to comment.