goclienttools

module
v0.1.1-0...-a845865 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 25, 2018 License: Apache-2.0

README

GoClientTools

Build Status

codecov

Este repositório contém pacotes utilitarios para se construir um Client em Go.

Utilizando no seu projeto

Setup

Basta baixar a biblioteca para o seu workspace utilizando o comando tradicional do go, ou qualquer gerenciador de dependencia de sua escolha.

go get -u github.com/stone-payments/goclienttools
Show me the code

A interface principal da biblioteca é o Manager, ele é responsável por gerenciar as requisições.

import (
    "github.com/stone-payments/goclienttools/http"
    "github.com/stone-payments/goclienttools/errors"
)

type Client struct {
    manager http.Manager
}

func (c *Client) Get(id int) (Something, errors.Error){
    url := c.manager.BuildURL(endpoint, id)
    resp, err := c.manager.Request(http.Requester.Get, url, http.Options())

    var something Something
    if err == nil {
        err = resp.JSON(&something)
    }

    return &something, err
}

client := Client{baseUrl}

É possível registrar interceptors que processem requests e responses. Basta implementar a interface Interceptor do pacote http.

import (
    "github.com/stone-payments/goclienttools/errors"
    "github.com/stone-payments/goclienttools/http"
)

func init() {
    http.Interceptors = append(http.Interceptors,
        http.NewInterceptor(func(req http.Request) http.Request {
            println("on request event")
            return req
        }, func(resp http.Response) (http.Response, errors.Error) {
            println("on response event")
            return resp, nil
        }))
}

Também é possível substituir o http requester padrão

import (
    "github.com/stone-payments/goclienttools/http"
)

func init() {
    http.Requester = requester
}

Feito com

Go 1.9

Como contribuir?

Todo o processo necessário para você contribuir encontra-se em nosso CONTRIBUTING.

Versionamento

Por favor, consulte nosso CHANGELOG.

Autores

Build with ❤ by Dev RC Team!

License

Copyright (C) 2018. Stone Co. All rights reserved.

Directories

Path Synopsis
mocks
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL