megaplan

package module
v1.3.3 Latest Latest
Warning

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

Go to latest
Published: Sep 25, 2021 License: MIT Imports: 17 Imported by: 0

README

megaplan

Смотри примеры в examples

master

https://dev.megaplan.ru/r1905/api/index.html

В данный момент поддерживает v1 API.

Представляет простую обертку над http методами GET и POST Алгоритм шифрования запроса см. в методе queryHashing, может быть реализован на любом ЯП.

go get github.com/stvoidit/megaplan

Пример использования:

var api = megaplan.NewAPI(accessID, secretKey, myhost)
response, err := api.GET("/BumsCommonApiV01/UserInfo/id.api", nil)
if err != nil {
	panic(err)
}
defer response.Body.Close()
fmt.Println(response.Status)
type UserInfo struct {
	UserID       int64  `json:"UserId"`
	EmployeeID   int64  `json:"EmployeeId"`
	ContractorID string `json:"ContractorId"`
}
var user = new(UserInfo)
if err := json.NewDecoder(tee).Decode(megaplan.ExpectedResponse(user)); err != nil {
	panic(err)
}
fmt.Printf("%+v\n", user)

v3

https://dev.megaplan.ru/r1905/apiv3/index.html

Уже может использоваться, но не имеет кастомизации возможности сохранения токена. Частично в процессе доработки удобства использования.

Представляет собой обертку над oauth2.

go get github.com/stvoidit/megaplan/v3

Примечание

v1 и v3 координально отличаются по схемам данных, обработке и содержанию. Многие сущности не описаны в v3 документации. Например имеется endpoint на /api/v3/department, но при этом сущность сотрудников вообще не имеет данных об отделах. Имеется endpoint /api/v3/position, но не описан в докуменатации, хотя представляет структурированные данные о должностях сотрудников.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type API

type API struct {
	// contains filtered or unexported fields
}

API - Структура объекта API v1

func NewAPI added in v1.2.1

func NewAPI(accessID, secretKey, domain string) *API

NewAPI - новый экземпляр api

func (API) CheckUser

func (api API) CheckUser(userSign string) (*http.Response, error)

CheckUser - проверка пользователя для встроенного приложения

func (API) Do added in v1.3.1

func (api API) Do(request *http.Request) (response *http.Response, err error)

Do - обертка над стандартным Do(*http.Request)

func (*API) EnableCompression added in v1.3.3

func (api *API) EnableCompression(b bool)

EnableCompression - добавлять заголово "Accept-Encoding: gzip", http.Response.Body будет автоматически обработан

func (API) GET

func (api API) GET(uri string, payload Payload) (*http.Response, error)

GET - get запрос к API

func (*API) GetToken

func (api *API) GetToken(domain, login, password string) (err error)

GetToken - Получение токена API

func (API) POST

func (api API) POST(uri string, payload Payload) (*http.Response, error)

POST - post запрос на API

func (API) SaveToken added in v1.3.1

func (api API) SaveToken(filename string) error

SaveToken - сохранить конфигурацию в json

func (*API) SetHTTPClient added in v1.3.3

func (api *API) SetHTTPClient(c *http.Client)

SetHTTPClient - установить свой http.Client для API

type Payload added in v1.3.3

type Payload map[string]interface{}

Payload - параметры запроса. url.Values в удобной обертке

func (Payload) Encode added in v1.3.3

func (p Payload) Encode() string

Encode = url.Values.Encode()

type Response added in v1.3.1

type Response struct {
	Status struct {
		Code    string `json:"code"`
		Message string `json:"message"`
	} `json:"status"`
	Data interface{} `json:"data"`
}

Response - структура стандартного ответа API

func ExpectedResponse added in v1.3.1

func ExpectedResponse(data interface{}) *Response

ExpectedResponse - оборачивает ожидаемый ответ в стандартную структуру. Ожидаемый интерфейс будет находиться в поле Response.Data. После обработки необходимо сделать assert вложенного интерфейса к ожидаемому (см. примеры)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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