api

package module
v5.0.13 Latest Latest
Warning

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

Go to latest
Published: Nov 7, 2024 License: AGPL-3.0 Imports: 28 Imported by: 4

README

🍀 go-sdk 接入

go get -u github.com/duc-cnzj/mars/api/v5
package main

import (
  api "github.com/duc-cnzj/mars/api/v5"
)

func main()  {
  c, _ := api.NewClient("127.0.0.1:50000",
    api.WithAuth("admin", "123456"),
    api.WithTokenAutoRefresh(),
  )
  defer c.Close()

  // ...
}

更多使用方法请参考 examples

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	UnaryClientInterceptors  []grpc.UnaryClientInterceptor
	StreamClientInterceptors []grpc.StreamClientInterceptor
	// contains filtered or unexported fields
}

func (*Client) AccessToken

func (c *Client) AccessToken() token.AccessTokenClient

func (*Client) Auth

func (c *Client) Auth() auth.AuthClient

func (*Client) Changelog

func (c *Client) Changelog() changelog.ChangelogClient

func (*Client) Close

func (c *Client) Close() error

func (*Client) Cluster

func (c *Client) Cluster() cluster.ClusterClient

func (*Client) Container

func (c *Client) Container() container.ContainerClient

func (*Client) Endpoint

func (c *Client) Endpoint() endpoint.EndpointClient

func (*Client) Event

func (c *Client) Event() event.EventClient

func (*Client) File

func (c *Client) File() file.FileClient

func (*Client) Git

func (c *Client) Git() git.GitClient

func (*Client) Metrics

func (c *Client) Metrics() metrics.MetricsClient

func (*Client) Namespace

func (c *Client) Namespace() namespace.NamespaceClient

func (*Client) Picture

func (c *Client) Picture() picture.PictureClient

func (*Client) Project

func (c *Client) Project() project.ProjectClient

func (*Client) Repo

func (c *Client) Repo() repo.RepoClient

func (*Client) SetBearerToken

func (c *Client) SetBearerToken(token string)

func (*Client) Version

func (c *Client) Version() version.VersionClient

type GatewayCarrier

type GatewayCarrier metadata.MD

func (GatewayCarrier) Get

func (hc GatewayCarrier) Get(key string) string

func (GatewayCarrier) Keys

func (hc GatewayCarrier) Keys() []string

func (GatewayCarrier) Set

func (hc GatewayCarrier) Set(key string, value string)

type Group

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

Group represents a class of work and forms a namespace in which units of work can be executed with duplicate suppression.

func (*Group) Do

func (g *Group) Do(key string, fn func() (interface{}, error)) (v interface{}, err error, shared bool)

Do executes and returns the results of the given function, making sure that only one execution is in-flight for a given key at a time. If a duplicate comes in, the duplicate caller waits for the original to complete and receives the same results. The return value shared indicates whether v was given to multiple callers.

func (*Group) DoChan

func (g *Group) DoChan(key string, fn func() (interface{}, error)) (<-chan Result, bool)

DoChan is like Do but returns a channel that will receive the results when they are ready. The second result is true if the function will eventually be called, false if it will not (because there is a pending request with this key).

func (*Group) ForgetUnshared

func (g *Group) ForgetUnshared(key string) bool

ForgetUnshared tells the singleflight to forget about a key if it is not shared with any other goroutines. Future calls to Do for a forgotten key will call the function rather than waiting for an earlier call to complete. Returns whether the key was forgotten or unknown--that is, whether no other goroutines are waiting for the result.

type Interface

type Interface interface {
	io.Closer
	SetBearerToken(string)

	Auth() auth.AuthClient
	Picture() picture.PictureClient
	Version() version.VersionClient
	Cluster() cluster.ClusterClient
	Changelog() changelog.ChangelogClient
	Event() event.EventClient
	Container() container.ContainerClient
	File() file.FileClient
	Git() git.GitClient
	Namespace() namespace.NamespaceClient
	Project() project.ProjectClient
	Endpoint() endpoint.EndpointClient
	Metrics() metrics.MetricsClient
	AccessToken() token.AccessTokenClient
	Repo() repo.RepoClient
}

func NewClient

func NewClient(addr string, opts ...Option) (Interface, error)

type Option

type Option func(*Client)

func WithAuth

func WithAuth(username, password string) Option

func WithBearerToken

func WithBearerToken(token string) Option

func WithStreamClientInterceptor

func WithStreamClientInterceptor(op grpc.StreamClientInterceptor) Option

func WithTokenAutoRefresh

func WithTokenAutoRefresh() Option

WithTokenAutoRefresh TODO c.StreamClientInterceptors 有点难搞,好在目前没用到,之后用到了需要搞一下

func WithTracer

func WithTracer() Option

func WithUnaryClientInterceptor

func WithUnaryClientInterceptor(op grpc.UnaryClientInterceptor) Option

type Result

type Result struct {
	Val    interface{}
	Err    error
	Shared bool
}

Result holds the results of Do, so they can be passed on a channel.

Directories

Path Synopsis
Package auth is a reverse proxy.
Package auth is a reverse proxy.
Package changelog is a reverse proxy.
Package changelog is a reverse proxy.
Package cluster is a reverse proxy.
Package cluster is a reverse proxy.
Package container is a reverse proxy.
Package container is a reverse proxy.
Package endpoint is a reverse proxy.
Package endpoint is a reverse proxy.
Package event is a reverse proxy.
Package event is a reverse proxy.
Package file is a reverse proxy.
Package file is a reverse proxy.
Package git is a reverse proxy.
Package git is a reverse proxy.
Package metrics is a reverse proxy.
Package metrics is a reverse proxy.
Package namespace is a reverse proxy.
Package namespace is a reverse proxy.
Package picture is a reverse proxy.
Package picture is a reverse proxy.
Package project is a reverse proxy.
Package project is a reverse proxy.
Package repo is a reverse proxy.
Package repo is a reverse proxy.
Package token is a reverse proxy.
Package token is a reverse proxy.
Package version is a reverse proxy.
Package version is a reverse proxy.

Jump to

Keyboard shortcuts

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