Quickly and easily access any RESTful or RESTful-like API.
If you are looking for the SendGrid API client library, please see this repo.
Announcements
All updates to this library is documented in our CHANGELOG.
Installation
go get github.com/sendgrid/rest
Quick Start
GET /your/api/{param}/call
package main
import "github.com/sendgrid/rest"
import "fmt"
func main() {
const host = "https://api.example.com"
param := "myparam"
endpoint := "/your/api/" + param + "/call"
baseURL := host + endpoint
method := rest.Get
request := rest.Request{
Method: method,
BaseURL: baseURL,
}
response, err := rest.API(request)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(response.StatusCode)
fmt.Println(response.Body)
fmt.Println(response.Headers)
}
}
POST /your/api/{param}/call
with headers, query parameters and a request body.
package main
import "github.com/sendgrid/rest"
import "fmt"
func main() {
const host = "https://api.example.com"
param := "myparam"
endpoint := "/your/api/" + param + "/call"
baseURL := host + endpoint
Headers := make(map[string]string)
key := os.Getenv("API_KEY")
Headers["Authorization"] = "Bearer " + key
Headers["X-Test"] = "Test"
var Body = []byte(`{"some": 0, "awesome": 1, "data": 3}`)
queryParams := make(map[string]string)
queryParams["hello"] = "0"
queryParams["world"] = "1"
method := rest.Post
request = rest.Request{
Method: method,
BaseURL: baseURL,
Headers: Headers,
QueryParams: queryParams,
Body: Body,
}
response, err := rest.API(request)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(response.StatusCode)
fmt.Println(response.Body)
fmt.Println(response.Headers)
}
}
Usage
Roadmap
If you are interested in the future direction of this project, please take a look at our milestones. We would love to hear your feedback.
How to Contribute
We encourage contribution to our projects, please see our CONTRIBUTING guide for details.
Quick links:
About
rest is guided and supported by the SendGrid Developer Experience Team.
rest is maintained and funded by SendGrid, Inc. The names and logos for rest are trademarks of SendGrid, Inc.
![SendGrid Logo] (https://uiux.s3.amazonaws.com/2016-logos/email-logo%402x.png)