• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..16-Feb-2020-

.env_sampleH A D16-Feb-202026 11

.gitignoreH A D16-Feb-2020295 2922

.travis.ymlH A D16-Feb-20201.4 KiB3428

CHANGELOG.mdH A D16-Feb-20202 KiB5947

CODE_OF_CONDUCT.mdH A D16-Feb-20204.3 KiB4226

CONTRIBUTING.mdH A D16-Feb-20207.6 KiB186119

README.mdH A D16-Feb-20204.6 KiB163124

TROUBLESHOOTING.mdH A D16-Feb-20201.5 KiB6252

USAGE.mdH A D16-Feb-20203.5 KiB211181

rest.goH A D16-Feb-20203.9 KiB158109

README.md

1![SendGrid Logo](https://uiux.s3.amazonaws.com/2016-logos/email-logo%402x.png)
2
3[![Build Status](https://travis-ci.org/sendgrid/rest.svg?branch=master)](https://travis-ci.org/sendgrid/rest)
4[![GoDoc](https://godoc.org/github.com/sendgrid/rest?status.png)](http://godoc.org/github.com/sendgrid/rest)
5[![Go Report Card](https://goreportcard.com/badge/github.com/sendgrid/rest)](https://goreportcard.com/report/github.com/sendgrid/rest)
6[![Email Notifications Badge](https://dx.sendgrid.com/badge/go)](https://dx.sendgrid.com/newsletter/go)
7[![Twitter Follow](https://img.shields.io/twitter/follow/sendgrid.svg?style=social&label=Follow)](https://twitter.com/sendgrid)
8[![GitHub contributors](https://img.shields.io/github/contributors/sendgrid/rest.svg)](https://github.com/sendgrid/rest/graphs/contributors)
9[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE.txt)
10
11**Quickly and easily access any RESTful or RESTful-like API.**
12
13If you are looking for the SendGrid API client library, please see [this repo](https://github.com/sendgrid/sendgrid-go).
14
15# Announcements
16
17All updates to this library is documented in our [CHANGELOG](https://github.com/sendgrid/rest/blob/master/CHANGELOG.md).
18
19# Table of Contents
20- [Installation](#installation)
21- [Quick Start](#quick-start)
22- [Usage](#usage)
23- [Roadmap](#roadmap)
24- [How to Contribute](#contribute)
25- [About](#about)
26- [License](#license)
27
28<a name="installation"></a>
29# Installation
30
31## Prerequisites
32
33- Go version 1.6.X, 1.7.X, 1.8.X, 1.9.X or 1.10.X
34
35## Install Package
36
37```bash
38go get github.com/sendgrid/rest
39```
40
41## Setup Environment Variables
42
43### Initial Setup
44
45```bash
46cp .env_sample .env
47```
48
49### Environment Variable
50
51Update the development environment with your [SENDGRID_API_KEY](https://app.sendgrid.com/settings/api_keys), for example:
52
53```bash
54echo "export SENDGRID_API_KEY='YOUR_API_KEY'" > sendgrid.env
55echo "sendgrid.env" >> .gitignore
56source ./sendgrid.env
57```
58
59<a name="quick-start"></a>
60# Quick Start
61
62`GET /your/api/{param}/call`
63
64```go
65package main
66
67import "github.com/sendgrid/rest"
68import "fmt"
69
70func main() {
71	const host = "https://api.example.com"
72	param := "myparam"
73	endpoint := "/your/api/" + param + "/call"
74	baseURL := host + endpoint
75	method := rest.Get
76	request := rest.Request{
77		Method:  method,
78		BaseURL: baseURL,
79	}
80	response, err := rest.Send(request)
81	if err != nil {
82		fmt.Println(err)
83	} else {
84		fmt.Println(response.StatusCode)
85		fmt.Println(response.Body)
86		fmt.Println(response.Headers)
87	}
88}
89```
90
91`POST /your/api/{param}/call` with headers, query parameters and a request body.
92
93```go
94package main
95
96import "github.com/sendgrid/rest"
97import "fmt"
98
99func main() {
100	const host = "https://api.example.com"
101	param := "myparam"
102	endpoint := "/your/api/" + param + "/call"
103	baseURL := host + endpoint
104	Headers := make(map[string]string)
105	key := os.Getenv("API_KEY")
106	Headers["Authorization"] = "Bearer " + key
107	Headers["X-Test"] = "Test"
108	var Body = []byte(`{"some": 0, "awesome": 1, "data": 3}`)
109	queryParams := make(map[string]string)
110	queryParams["hello"] = "0"
111	queryParams["world"] = "1"
112	method := rest.Post
113	request = rest.Request{
114		Method:      method,
115		BaseURL:     baseURL,
116		Headers:     Headers,
117		QueryParams: queryParams,
118		Body:        Body,
119	}
120	response, err := rest.Send(request)
121	if err != nil {
122		fmt.Println(err)
123	} else {
124		fmt.Println(response.StatusCode)
125		fmt.Println(response.Body)
126		fmt.Println(response.Headers)
127	}
128}
129```
130
131<a name="usage"></a>
132# Usage
133
134- [Usage Examples](USAGE.md)
135
136<a name="roadmap"></a>
137# Roadmap
138
139If you are interested in the future direction of this project, please take a look at our [milestones](https://github.com/sendgrid/rest/milestones). We would love to hear your feedback.
140
141<a name="contribute"></a>
142# How to Contribute
143
144We encourage contribution to our projects, please see our [CONTRIBUTING](https://github.com/sendgrid/rest/blob/master/CONTRIBUTING.md) guide for details.
145
146Quick links:
147
148- [Feature Request](https://github.com/sendgrid/rest/blob/master/CONTRIBUTING.md#feature-request)
149- [Bug Reports](https://github.com/sendgrid/rest/blob/master/CONTRIBUTING.md#submit-a-bug-report)
150- [Sign the CLA to Create a Pull Request](https://github.com/sendgrid/rest/blob/master/CONTRIBUTING.md#cla)
151- [Improvements to the Codebase](https://github.com/sendgrid/rest/blob/master/CONTRIBUTING.md#improvements-to-the-codebase)
152
153<a name="about"></a>
154# About
155
156rest is guided and supported by the SendGrid [Developer Experience Team](mailto:dx@sendgrid.com).
157
158rest is maintained and funded by SendGrid, Inc. The names and logos for rest are trademarks of SendGrid, Inc.
159
160<a name="license"></a>
161# License
162[The MIT License (MIT)](LICENSE.txt)
163