JavaScript
Basic fetch request
const reqUrl = "https://example.com"; const requestBody = { a: 1, };
const requestOptions = { method: 'POST', headers: { Authorization: `Bearer ${apiResource.token}`, "Content-Type": "application/json", "Accept": "application/json", }, body: JSON.stringify(requestBody), };
const res = await fetch(`${reqUrl}/finish`, requestOptions) const resJson = await res.json()
Fetch request + query and body param in form urlencoded
const token = 'b5c06574-a1e8-4ba6-8f40-62fc389ef84b'
const url = new URL('https://example.com');url.searchParams.set('queryParam1', 'valueParam');url.searchParams.set('queryParam2', "valueParam")
let urlencoded = new URLSearchParams();urlencoded.append("bodyParam1", "valueParam");urlencoded.append("bodyParam2", "valueParam");
const requestOptions = { method: 'POST', headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/x-www-form-urlencoded', }, body: urlencoded,}
const res = fetch(url, requestOptions)
Alternative body param in form urlencoded
const res = await fetch('https://example.com', { method: "PUT", headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/x-www-form-urlencoded', Accept: 'application/json', }, body: new URLSearchParams({ var1: String(data.var1), var2: String(data.var2), })});
Fetch request with query param and json body
const token = 'b5c06574-a1e8-4ba6-8f40-62fc389ef84b'
const url = new URL('https://example.com');url.searchParams.set('queryParam1', 'valueParam');url.searchParams.set('queryParam2', "valueParam")
const body = { bodyParam1: "valueParam", bodyParam2: "valueParam",}
const requestOptions = { method: 'POST', headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json', }, body: JSON.stringify(body),}
const res = fetch(url, requestOptions)
Exponential backoff of api request
/** * Retry a function n times with exponential backoff. * Example: retry(exampleFunction, 3, 5, 10) will do 3 retries of exampleFunction(5, 10) */async function retry<T>(fn: (...args: any[]) => Promise<T>, n: number, ...args: any[]): Promise<T> { for (let i = 0; i < n; i++) { try { return await fn(...args); } catch (e) { console.error(e); const backoff = Math.floor(Math.random() * Math.pow(2, i)); await new Promise((resolve) => setTimeout(resolve, backoff * 1000)); } } throw new Error("Retry limit exceeded");}
API Response
function apiResponse(status: string, message: string, data: object) { return { status, message, data }}
Python
Basic request
import requests
token = 'b5c06574-a1e8-4ba6-8f40-62fc389ef84b'headers = { "Authentication": f"Bearer {token}", "Content-Type": "application/json", "Accept": "application/json",}req = requests.get(f"https://example.com", headers=headers)if req.status_code == 200: req_json = req.json() return { "status": "success", "message": "good response", "data": req_json, }else: return { "status": "failed", "message": "bad response", "data": {"error": req.text}, }
Basic request with query params and JSON body
import requests
token = 'b5c06574-a1e8-4ba6-8f40-62fc389ef84b'headers = { "Authentication": f"Bearer {token}", "Content-Type": "application/json", "Accept": "application/json",}body = { "hello": "world",}req = requests.post(f"https://example.com", headers=headers, json=body, params={'limit': 1})if req.status_code == 200: req_json = req.json() return { "status": "success", "message": "good response", "data": req_json, }else: return { "status": "success", "message": "good response", "data": {"error": req.text}, }
Golang
Basic HTTP Request
Read into byte array
resp, err := http.Get(url)if err != nil { fmt.Println("Error:", err) os.Exit(1)}
bs := make([]byte, 99999)rest.Body.Read(bs)fmt.Println(string(bs))
Copy direct into stdout
resp, err := http.Get(url)if err != nil { fmt.Println("Error:", err) os.Exit(1)}
io.Copy(os.Stdout, resp.Body)
package main
import ( "bytes" "encoding/json" "fmt" "net/http")
type PostData struct { Key string `json:"key"` Value string `json:"value"`}
func makeJSONPostRequest(url, token string, data *PostData) (string, error) { payload, err := json.Marshal(data) if err != nil { return "", fmt.Errorf("error preparing request body: %v", err) }
req, err := http.NewRequest("POST", url, bytes.NewBuffer(payload)) if err != nil { return "", fmt.Errorf("error creating new request: %v", err) }
// API token authentication req.Header.Add("Authorization", "Bearer "+token) req.Header.Add("Content-Type", "application/json") req.Header.Add("Accept", "application/json")
client := &http.Client{} resp, err := client.Do(req) if err != nil { return "", fmt.Errorf("error on request: %v", err) } defer resp.Body.Close()
// Here you can add logic to handle response
return resp.Status, nil}
func main() { data := PostData{ Key: "ExampleKey", Value: "ExampleValue", }
status, err := makeJSONPostRequest("https://example.com", "your-api-token", &data) if err != nil { fmt.Println("Error:", err) return }
fmt.Println("Response status:", status)}
Content-Types
Common MIME types - HTTP | MDN
Extension | Description | Mime |
---|---|---|
.json | JSON Format | application/json |
.json
JSON format application/json