Documentation
¶
Index ¶
- Constants
- Variables
- type AfterResourceListEvent
- type BeforeResourceListEvent
- type DefaultResourceFormatter
- type Resource
- type ResourceCRUDEvent
- type ResourceController
- func (res *ResourceController) DBSchema() db.SchemaGenerations
- func (res *ResourceController) Delete(d ResourceDeleteDelegate, middlewares ...middleware.Middleware) *ResourceController
- func (res *ResourceController) Get(d ResourceGetDelegate, middlewares ...middleware.Middleware) *ResourceController
- func (res *ResourceController) List(d ResourceListDelegate, middlewares ...middleware.Middleware) *ResourceController
- func (res *ResourceController) Name() string
- func (res *ResourceController) Post(d ResourcePostDelegate, middlewares ...middleware.Middleware) *ResourceController
- func (res *ResourceController) Put(d ResourcePutDelegate, middlewares ...middleware.Middleware) *ResourceController
- func (res *ResourceController) Register(srv *server.Server) error
- type ResourceControllerDelegate
- type ResourceDeleteDelegate
- type ResourceFormatter
- type ResourceGetDelegate
- type ResourceList
- type ResourceListDelegate
- type ResourcePathOverrider
- type ResourcePostDelegate
- type ResourcePutDelegate
Constants ¶
const ( EventBeforeResourceList = "before-resource-list" EventAfterResourceList = "after-resource-list" EventBeforeResourcePost = "before-resource-post" EventDuringResourcePost = "during-resource-post" EventAfterResourcePost = "after-resource-post" EventBeforeResourceGet = "before-resource-get" EventAfterResourceGet = "after-resource-get" EventBeforeResourcePut = "before-resource-put" EventDuringResourcePut = "during-resource-put" EventAfterResourcePut = "after-resource-put" EventBeforeResourceDelete = "before-resource-delete" EventDuringResourceDelete = "during-resource-delete" EventAfterResourceDelete = "after-resource-delete" )
Variables ¶
var ErrNoEndpoints = errors.New("no endpoints are enabled for this resource")
Functions ¶
This section is empty.
Types ¶
type AfterResourceListEvent ¶
type AfterResourceListEvent struct {
// contains filtered or unexported fields
}
func NewAfterResourceListEvent ¶
func NewAfterResourceListEvent(r *http.Request, list *ResourceList) *AfterResourceListEvent
func (AfterResourceListEvent) ErrorStrategy ¶
func (e AfterResourceListEvent) ErrorStrategy() event.ErrorStrategy
func (*AfterResourceListEvent) List ¶
func (e *AfterResourceListEvent) List() *ResourceList
func (*AfterResourceListEvent) Name ¶
func (e *AfterResourceListEvent) Name() string
type BeforeResourceListEvent ¶
type BeforeResourceListEvent struct {
// contains filtered or unexported fields
}
func NewBeforeResourceListEvent ¶
func NewBeforeResourceListEvent(r *http.Request) *BeforeResourceListEvent
func (BeforeResourceListEvent) ErrorStrategy ¶
func (e BeforeResourceListEvent) ErrorStrategy() event.ErrorStrategy
func (*BeforeResourceListEvent) Name ¶
func (e *BeforeResourceListEvent) Name() string
type DefaultResourceFormatter ¶
type DefaultResourceFormatter struct { }
DefaultResourceFormatter is a simple formatter that formats resources as HAL+JSON, JSON and XML.
func (*DefaultResourceFormatter) FormatMulti ¶
func (f *DefaultResourceFormatter) FormatMulti(res *ResourceList, r *render.Renderer)
func (*DefaultResourceFormatter) FormatSingle ¶
func (f *DefaultResourceFormatter) FormatSingle(res Resource, r *render.Renderer)
type Resource ¶
type Resource interface { }
Resource labels data for CRUD operation through API endpoints.
type ResourceCRUDEvent ¶
type ResourceCRUDEvent struct {
// contains filtered or unexported fields
}
func NewResourceCRUDEvent ¶
func NewResourceCRUDEvent(eventName string, r *http.Request, resource Resource) *ResourceCRUDEvent
func (ResourceCRUDEvent) ErrorStrategy ¶
func (e ResourceCRUDEvent) ErrorStrategy() event.ErrorStrategy
func (*ResourceCRUDEvent) Name ¶
func (e *ResourceCRUDEvent) Name() string
func (*ResourceCRUDEvent) Resource ¶
func (e *ResourceCRUDEvent) Resource() Resource
type ResourceController ¶
type ResourceController struct { ResourceFormatter ExtraEndpoints func(s *server.Server) error // contains filtered or unexported fields }
ResourceController represents a CRUD service.
func NewResourceController ¶
func NewResourceController(dispatcher *event.Dispatcher, delegate ResourceControllerDelegate) *ResourceController
NewResourceController creates a ResourceController with a given delegate and sensible defaults.
func (*ResourceController) DBSchema ¶
func (res *ResourceController) DBSchema() db.SchemaGenerations
func (*ResourceController) Delete ¶
func (res *ResourceController) Delete(d ResourceDeleteDelegate, middlewares ...middleware.Middleware) *ResourceController
Delete enables the DELETE endpoint.
func (*ResourceController) Get ¶
func (res *ResourceController) Get(d ResourceGetDelegate, middlewares ...middleware.Middleware) *ResourceController
Get enables the GET endpoint.
func (*ResourceController) List ¶
func (res *ResourceController) List(d ResourceListDelegate, middlewares ...middleware.Middleware) *ResourceController
List enables the listing endpoint.
func (*ResourceController) Name ¶
func (res *ResourceController) Name() string
ServiceName returns the name of this ResourceController.
func (*ResourceController) Post ¶
func (res *ResourceController) Post(d ResourcePostDelegate, middlewares ...middleware.Middleware) *ResourceController
Post enables the POST endpoint.
func (*ResourceController) Put ¶
func (res *ResourceController) Put(d ResourcePutDelegate, middlewares ...middleware.Middleware) *ResourceController
Put enables the PUT endpoint.
type ResourceControllerDelegate ¶
type ResourceControllerDelegate interface { db.DBSchemaProvider }
ResourceControllerDelegate customizes a ResourceController.
type ResourceDeleteDelegate ¶
type ResourceDeleteDelegate interface { Load(id string, r *http.Request) (Resource, error) Delete(data Resource, r *http.Request) error }
ResourceDeleteDelegate helps a ResourceController to handle DELETE for a resource.
type ResourceFormatter ¶
type ResourceFormatter interface { FormatSingle(Resource, *render.Renderer) FormatMulti(*ResourceList, *render.Renderer) }
ResourceFormatter formats resources for the HTTP response.
type ResourceGetDelegate ¶
ResourceGetDelegate helps a ResourceController to handle GET for a resource.
type ResourceList ¶
type ResourceList struct { Items []Resource `json:"items"` Page int `json:"-"` PageSize int `json:"-"` BasePath string `json:"-"` Curies []hal.HALCurie `json:"-"` Rels map[string][]interface{} `json:"-"` }
ResourceList is an extended list of resources.
func (*ResourceList) MarshalJSON ¶
func (rl *ResourceList) MarshalJSON() ([]byte, error)
func (*ResourceList) Sanitize ¶
func (rl *ResourceList) Sanitize()
type ResourceListDelegate ¶
type ResourceListDelegate interface { List(r *http.Request, start, limit int) ([]Resource, error) PageLength() int }
ResourceListDelegate helps a ResourceController to list resources.
type ResourcePathOverrider ¶
ResourcePathOverrider can be implemented by a ResourceDelegate to change the path pattern for the given resource operation.
type ResourcePostDelegate ¶
type ResourcePostDelegate interface { Empty() Resource Validate(data Resource, r *http.Request) Insert(data Resource, r *http.Request) error }
ResourcePostDelegate helps a ResourceController to handle POST for a resource.
type ResourcePutDelegate ¶
type ResourcePutDelegate interface { Empty() Resource Load(id string, r *http.Request) (Resource, error) GetID(Resource) string Validate(data Resource, r *http.Request) Update(data Resource, r *http.Request) error }
ResourcePutDelegate helps a ResourceController to handle PUT for a resource.