Documentation
¶
Overview ¶
Package loginapi implements the public API of the login.example microservice, including clients and data structures.
The Login microservice demonstrates usage of authentication and authorization.
Index ¶
- Constants
- Variables
- type Client
- func (_c *Client) AdminOnly(r *http.Request) (res *http.Response, err error)
- func (_c *Client) AdminOnly_Get(ctx context.Context, url string) (res *http.Response, err error)
- func (_c *Client) AdminOnly_Post(ctx context.Context, url string, contentType string, body any) (res *http.Response, err error)
- func (_c *Client) ForHost(host string) *Client
- func (_c *Client) Login(r *http.Request) (res *http.Response, err error)
- func (_c *Client) Login_Get(ctx context.Context, url string) (res *http.Response, err error)
- func (_c *Client) Login_Post(ctx context.Context, url string, contentType string, body any) (res *http.Response, err error)
- func (_c *Client) Logout(r *http.Request) (res *http.Response, err error)
- func (_c *Client) Logout_Get(ctx context.Context, url string) (res *http.Response, err error)
- func (_c *Client) Logout_Post(ctx context.Context, url string, contentType string, body any) (res *http.Response, err error)
- func (_c *Client) ManagerOnly(r *http.Request) (res *http.Response, err error)
- func (_c *Client) ManagerOnly_Get(ctx context.Context, url string) (res *http.Response, err error)
- func (_c *Client) ManagerOnly_Post(ctx context.Context, url string, contentType string, body any) (res *http.Response, err error)
- func (_c *Client) Welcome(r *http.Request) (res *http.Response, err error)
- func (_c *Client) Welcome_Get(ctx context.Context, url string) (res *http.Response, err error)
- func (_c *Client) Welcome_Post(ctx context.Context, url string, contentType string, body any) (res *http.Response, err error)
- func (_c *Client) WithOptions(opts ...pub.Option) *Client
- type MulticastClient
- func (_c *MulticastClient) AdminOnly(ctx context.Context, r *http.Request) <-chan *pub.Response
- func (_c *MulticastClient) AdminOnly_Get(ctx context.Context, url string) <-chan *pub.Response
- func (_c *MulticastClient) AdminOnly_Post(ctx context.Context, url string, contentType string, body any) <-chan *pub.Response
- func (_c *MulticastClient) ForHost(host string) *MulticastClient
- func (_c *MulticastClient) Login(ctx context.Context, r *http.Request) <-chan *pub.Response
- func (_c *MulticastClient) Login_Get(ctx context.Context, url string) <-chan *pub.Response
- func (_c *MulticastClient) Login_Post(ctx context.Context, url string, contentType string, body any) <-chan *pub.Response
- func (_c *MulticastClient) Logout(ctx context.Context, r *http.Request) <-chan *pub.Response
- func (_c *MulticastClient) Logout_Get(ctx context.Context, url string) <-chan *pub.Response
- func (_c *MulticastClient) Logout_Post(ctx context.Context, url string, contentType string, body any) <-chan *pub.Response
- func (_c *MulticastClient) ManagerOnly(ctx context.Context, r *http.Request) <-chan *pub.Response
- func (_c *MulticastClient) ManagerOnly_Get(ctx context.Context, url string) <-chan *pub.Response
- func (_c *MulticastClient) ManagerOnly_Post(ctx context.Context, url string, contentType string, body any) <-chan *pub.Response
- func (_c *MulticastClient) Welcome(ctx context.Context, r *http.Request) <-chan *pub.Response
- func (_c *MulticastClient) Welcome_Get(ctx context.Context, url string) <-chan *pub.Response
- func (_c *MulticastClient) Welcome_Post(ctx context.Context, url string, contentType string, body any) <-chan *pub.Response
- func (_c *MulticastClient) WithOptions(opts ...pub.Option) *MulticastClient
Constants ¶
const Hostname = "login.example"
Hostname is the default hostname of the microservice: login.example.
Variables ¶
var ( URLOfLogin = httpx.JoinHostAndPath(Hostname, `:443/login`) URLOfLogout = httpx.JoinHostAndPath(Hostname, `:443/logout`) URLOfWelcome = httpx.JoinHostAndPath(Hostname, `:443/welcome`) URLOfAdminOnly = httpx.JoinHostAndPath(Hostname, `:443/admin-only`) URLOfManagerOnly = httpx.JoinHostAndPath(Hostname, `:443/manager-only`) )
Fully-qualified URLs of the microservice's endpoints.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is an interface to calling the endpoints of the login.example microservice. This simple version is for unicast calls.
func (*Client) AdminOnly ¶
AdminOnly is only accessible by admins.
If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*Client) AdminOnly_Get ¶
AdminOnly_Get performs a GET request to the AdminOnly endpoint.
AdminOnly is only accessible by admins.
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*Client) AdminOnly_Post ¶
func (_c *Client) AdminOnly_Post(ctx context.Context, url string, contentType string, body any) (res *http.Response, err error)
AdminOnly_Post performs a POST request to the AdminOnly endpoint.
AdminOnly is only accessible by admins.
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.
func (*Client) Login ¶
Login renders a simple login screen that authenticates a user. Known users are hardcoded as "admin", "manager" and "user". The password is "password".
If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*Client) Login_Get ¶
Login_Get performs a GET request to the Login endpoint.
Login renders a simple login screen that authenticates a user. Known users are hardcoded as "admin", "manager" and "user". The password is "password".
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*Client) Login_Post ¶
func (_c *Client) Login_Post(ctx context.Context, url string, contentType string, body any) (res *http.Response, err error)
Login_Post performs a POST request to the Login endpoint.
Login renders a simple login screen that authenticates a user. Known users are hardcoded as "admin", "manager" and "user". The password is "password".
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.
func (*Client) Logout ¶
Logout renders a page that logs out the user.
If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*Client) Logout_Get ¶
Logout_Get performs a GET request to the Logout endpoint.
Logout renders a page that logs out the user.
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*Client) Logout_Post ¶
func (_c *Client) Logout_Post(ctx context.Context, url string, contentType string, body any) (res *http.Response, err error)
Logout_Post performs a POST request to the Logout endpoint.
Logout renders a page that logs out the user.
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.
func (*Client) ManagerOnly ¶
ManagerOnly is only accessible by managers.
If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*Client) ManagerOnly_Get ¶
ManagerOnly_Get performs a GET request to the ManagerOnly endpoint.
ManagerOnly is only accessible by managers.
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*Client) ManagerOnly_Post ¶
func (_c *Client) ManagerOnly_Post(ctx context.Context, url string, contentType string, body any) (res *http.Response, err error)
ManagerOnly_Post performs a POST request to the ManagerOnly endpoint.
ManagerOnly is only accessible by managers.
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.
func (*Client) Welcome ¶
Welcome renders a page that is shown to the user after a successful login. Rendering is adjusted based on the user's roles.
If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*Client) Welcome_Get ¶
Welcome_Get performs a GET request to the Welcome endpoint.
Welcome renders a page that is shown to the user after a successful login. Rendering is adjusted based on the user's roles.
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*Client) Welcome_Post ¶
func (_c *Client) Welcome_Post(ctx context.Context, url string, contentType string, body any) (res *http.Response, err error)
Welcome_Post performs a POST request to the Welcome endpoint.
Welcome renders a page that is shown to the user after a successful login. Rendering is adjusted based on the user's roles.
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.
type MulticastClient ¶
type MulticastClient struct {
// contains filtered or unexported fields
}
MulticastClient is an interface to calling the endpoints of the login.example microservice. This advanced version is for multicast calls.
func NewMulticastClient ¶
func NewMulticastClient(caller service.Publisher) *MulticastClient
NewMulticastClient creates a new multicast client to the login.example microservice.
func (*MulticastClient) AdminOnly ¶
AdminOnly is only accessible by admins.
If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*MulticastClient) AdminOnly_Get ¶
AdminOnly_Get performs a GET request to the AdminOnly endpoint.
AdminOnly is only accessible by admins.
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*MulticastClient) AdminOnly_Post ¶
func (_c *MulticastClient) AdminOnly_Post(ctx context.Context, url string, contentType string, body any) <-chan *pub.Response
AdminOnly_Post performs a POST request to the AdminOnly endpoint.
AdminOnly is only accessible by admins.
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.
func (*MulticastClient) ForHost ¶
func (_c *MulticastClient) ForHost(host string) *MulticastClient
ForHost replaces the default hostname of this client.
func (*MulticastClient) Login ¶
Login renders a simple login screen that authenticates a user. Known users are hardcoded as "admin", "manager" and "user". The password is "password".
If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*MulticastClient) Login_Get ¶
Login_Get performs a GET request to the Login endpoint.
Login renders a simple login screen that authenticates a user. Known users are hardcoded as "admin", "manager" and "user". The password is "password".
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*MulticastClient) Login_Post ¶
func (_c *MulticastClient) Login_Post(ctx context.Context, url string, contentType string, body any) <-chan *pub.Response
Login_Post performs a POST request to the Login endpoint.
Login renders a simple login screen that authenticates a user. Known users are hardcoded as "admin", "manager" and "user". The password is "password".
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.
func (*MulticastClient) Logout ¶
Logout renders a page that logs out the user.
If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*MulticastClient) Logout_Get ¶
Logout_Get performs a GET request to the Logout endpoint.
Logout renders a page that logs out the user.
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*MulticastClient) Logout_Post ¶
func (_c *MulticastClient) Logout_Post(ctx context.Context, url string, contentType string, body any) <-chan *pub.Response
Logout_Post performs a POST request to the Logout endpoint.
Logout renders a page that logs out the user.
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.
func (*MulticastClient) ManagerOnly ¶
ManagerOnly is only accessible by managers.
If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*MulticastClient) ManagerOnly_Get ¶
ManagerOnly_Get performs a GET request to the ManagerOnly endpoint.
ManagerOnly is only accessible by managers.
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*MulticastClient) ManagerOnly_Post ¶
func (_c *MulticastClient) ManagerOnly_Post(ctx context.Context, url string, contentType string, body any) <-chan *pub.Response
ManagerOnly_Post performs a POST request to the ManagerOnly endpoint.
ManagerOnly is only accessible by managers.
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.
func (*MulticastClient) Welcome ¶
Welcome renders a page that is shown to the user after a successful login. Rendering is adjusted based on the user's roles.
If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*MulticastClient) Welcome_Get ¶
Welcome_Get performs a GET request to the Welcome endpoint.
Welcome renders a page that is shown to the user after a successful login. Rendering is adjusted based on the user's roles.
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.
func (*MulticastClient) Welcome_Post ¶
func (_c *MulticastClient) Welcome_Post(ctx context.Context, url string, contentType string, body any) <-chan *pub.Response
Welcome_Post performs a POST request to the Welcome endpoint.
Welcome renders a page that is shown to the user after a successful login. Rendering is adjusted based on the user's roles.
If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.
func (*MulticastClient) WithOptions ¶
func (_c *MulticastClient) WithOptions(opts ...pub.Option) *MulticastClient
WithOptions applies options to requests made by this client.