Documentation ¶
Index ¶
- Constants
- type CORSOption
- type Controller
- type Endpoints
- func (ep *Endpoints) Add(method, path string, callback interface{})
- func (ep *Endpoints) BasePath(path string)
- func (ep *Endpoints) DELETE(path string, callback interface{})
- func (ep *Endpoints) GET(path string, callback interface{})
- func (ep *Endpoints) Middlewares(mds ...handleToHandle)
- func (ep *Endpoints) PATCH(path string, callback interface{})
- func (ep *Endpoints) POST(path string, callback interface{})
- func (ep *Endpoints) PUT(path string, callback interface{})
- type Minirest
- func (mn *Minirest) AddController(controller Controller, srv ...Service)
- func (mn *Minirest) AddService(service Service)
- func (mn *Minirest) CORS(opt CORSOption)
- func (mn *Minirest) LinkService(dest Service, svcs ...Service)
- func (mn *Minirest) RunServer()
- func (mn *Minirest) ServeIP(ip string)
- func (mn *Minirest) ServePort(port string)
- type Response
- type ResponseBuilder
- func (resp *ResponseBuilder) BadRequest(desc string) *ResponseBuilder
- func (resp *ResponseBuilder) Body(body interface{}) *ResponseBuilder
- func (resp *ResponseBuilder) Headers(headers [][2]string) *ResponseBuilder
- func (resp *ResponseBuilder) InternalError(desc string) *ResponseBuilder
- func (resp *ResponseBuilder) MethodNotAllowed(desc string) *ResponseBuilder
- func (resp *ResponseBuilder) NoContent(desc string) *ResponseBuilder
- func (resp *ResponseBuilder) NotFound(desc string) *ResponseBuilder
- func (resp *ResponseBuilder) Ok(data interface{}) *ResponseBuilder
- func (resp *ResponseBuilder) ServerOverload(desc string) *ResponseBuilder
- func (resp *ResponseBuilder) Status(code int) *ResponseBuilder
- func (resp *ResponseBuilder) TooManyRequest(desc string) *ResponseBuilder
- type Service
Constants ¶
const ( CodeOk = 200 CodeNoContent = 204 CodeBadRequest = 400 CodeNotFound = 404 CodeMethodNotAllowed = 405 CodeTooManyRequest = 429 CodeInternalError = 500 CodeOverload = 503 )
HTTP status codes
const ( MsgOk = "ok" MsgNoContent = "no_content" MsgBadRequest = "bad_request" MsgNotFound = "not_found" MsgMethodNotAllowed = "method_not_allowed" MsgTooManyRequest = "too_many_request" MsgInternalError = "internal_error" MsgOverloadError = "server_overload" )
HTTP status message
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CORSOption ¶
type CORSOption struct { AllowOrigin string AllowCredentials string ExposeHeaders string AllowHeaders string AllowMethods string }
CORSOption set options for CORS headers
type Controller ¶
type Controller interface { // Endpoints register all endpoints to its handler. // You can register your middleware as well in here Endpoints() *Endpoints }
Controller is interface for controller. If you want to register service into controller, make sure you have field with the same name as the service, example:
type Controller struct { UserService *UserService ItemService *ItemService }
type Endpoints ¶
type Endpoints struct { // Set to true for returning gzip encoded response on all endpoints Gzip bool // contains filtered or unexported fields }
Endpoints register handlers its path and method
func (*Endpoints) Middlewares ¶
func (ep *Endpoints) Middlewares(mds ...handleToHandle)
Middlewares register middleware chain. miniREST is using julienschmidt/httprouter for implementing router, so the middleware will use httprouter.Handle as its handle
type Minirest ¶
type Minirest struct { // Set to true for returning gzip encoded response globally Gzip bool // contains filtered or unexported fields }
Minirest is singleton for Minirest framework
func (*Minirest) AddController ¶
func (mn *Minirest) AddController(controller Controller, srv ...Service)
AddController add controller. You can link services srv into controller, see Controller and AddService for more information. If service is not registered, it will automatically register it
func (*Minirest) AddService ¶
AddService add service. Service must be pointer to struct
func (*Minirest) LinkService ¶ added in v1.1.0
LinkService link service dest with services svc. If service not registered, it will automatically registered. Service must have fields with same name as services that want to be linked. example:
type Service struct { UserService *UserService ItemService *ItemService }
type Response ¶
type Response struct { StatusCode int `json:"statusCode"` Status string `json:"status"` Description string `json:"description,omitempty"` Body interface{} `json:"body,omitempty"` }
Response is body for HTTP response
type ResponseBuilder ¶
type ResponseBuilder struct { // Set to true for returning gzip encoded response Gzip bool // contains filtered or unexported fields }
ResponseBuilder is a response builder
func (*ResponseBuilder) BadRequest ¶
func (resp *ResponseBuilder) BadRequest(desc string) *ResponseBuilder
BadRequest build response with HTTP Status 400
func (*ResponseBuilder) Body ¶
func (resp *ResponseBuilder) Body(body interface{}) *ResponseBuilder
Body set body
func (*ResponseBuilder) Headers ¶
func (resp *ResponseBuilder) Headers(headers [][2]string) *ResponseBuilder
Headers add headers
func (*ResponseBuilder) InternalError ¶
func (resp *ResponseBuilder) InternalError(desc string) *ResponseBuilder
InternalError build response with HTTP Status 500
func (*ResponseBuilder) MethodNotAllowed ¶
func (resp *ResponseBuilder) MethodNotAllowed(desc string) *ResponseBuilder
MethodNotAllowed build response with HTTP Status 405
func (*ResponseBuilder) NoContent ¶
func (resp *ResponseBuilder) NoContent(desc string) *ResponseBuilder
NoContent build response with HTTP Status 204
func (*ResponseBuilder) NotFound ¶
func (resp *ResponseBuilder) NotFound(desc string) *ResponseBuilder
NotFound build response with HTTP Status 404
func (*ResponseBuilder) Ok ¶
func (resp *ResponseBuilder) Ok(data interface{}) *ResponseBuilder
Ok build response with HTTP Status 200
func (*ResponseBuilder) ServerOverload ¶
func (resp *ResponseBuilder) ServerOverload(desc string) *ResponseBuilder
ServerOverload build response with HTTP Status 503
func (*ResponseBuilder) Status ¶
func (resp *ResponseBuilder) Status(code int) *ResponseBuilder
Status set status code
func (*ResponseBuilder) TooManyRequest ¶ added in v1.3.0
func (resp *ResponseBuilder) TooManyRequest(desc string) *ResponseBuilder