Documentation
¶
Overview ¶
Package ws provides the JSONWs and XMLWs facilities which support JSON and XML web services.
This facility is documented in detail at https://granitic.io/ref/web-services
Web-services ¶
Enabling the JSONWs or XMLWs facility allows the creation of web service endpoints where inbound and outbound data is automatically converted from and to JSON/XML.
An endpoint is created by adding an instance of handler.WsHandler with a corresponding implementation of handler.WsPostProcessor (generally referred to as handler logic) to your component definition file. For example:
"createRecordLogic": {
"type": "inventory.CreateRecordLogic"
},
"createRecordHandler": {
"type": "handler.WsHandler",
"HTTPMethod": "POST",
"Logic": "ref:createRecordLogic",
"PathPattern": "^/record$",
}
See the ws and ws/handler package documentation for more information.
JSON ¶
If JSONWs is enabled, any requests to a registered endpoint will have their request body parsed as JSON and any response rendered as JSON. This is handled with Go's built-in json package.
Many aspects of the parsing and rendering process (including content types, formatting of errors, pretty-printing and camel-case mapping) is configurable. Refer to https://granitic.io/ref/json-web-services for more details.
XML ¶
Once the XMLWs facility is enabled, requests to an endpoint will, by default, be parsed as XML and rendered using user defined templates. Refer to https://granitic.io/ref/xml-web-services for more details.
Alternatively, the XMLWs facility can be configured to automatically render responses as XML using Go's built-in XML marshalling components by setting the following configuration in your application's configuration files:
{
"XMLWs": {
"ResponseMode": "MARSHAL"
}
}
Refer to https://granitic.io/ref/xml-web-services for more information.
Many aspects of the parsing and rendering process (including content types and formatting of errors) is configurable. Refer to https://granitic.io/ref/xml-web-services for more details.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type JSONFacilityBuilder ¶
type JSONFacilityBuilder struct {
}
JSONFacilityBuilder creates the components required to support the JSONWs facility and adds them the IoC container.
func (*JSONFacilityBuilder) BuildAndRegister ¶
func (fb *JSONFacilityBuilder) BuildAndRegister(lm *logging.ComponentLoggerManager, ca *config.Accessor, cn *ioc.ComponentContainer) error
BuildAndRegister implements FacilityBuilder.BuildAndRegister
func (*JSONFacilityBuilder) DependsOnFacilities ¶
func (fb *JSONFacilityBuilder) DependsOnFacilities() []string
DependsOnFacilities implements FacilityBuilder.DependsOnFacilities
func (*JSONFacilityBuilder) FacilityName ¶
func (fb *JSONFacilityBuilder) FacilityName() string
FacilityName implements FacilityBuilder.FacilityName
type XMLFacilityBuilder ¶
type XMLFacilityBuilder struct {
}
XMLFacilityBuilder creates the components required to support the XMLWs facility and adds them the IoC container.
func (*XMLFacilityBuilder) BuildAndRegister ¶
func (fb *XMLFacilityBuilder) BuildAndRegister(lm *logging.ComponentLoggerManager, ca *config.Accessor, cc *ioc.ComponentContainer) error
BuildAndRegister implements FacilityBuilder.BuildAndRegister
func (*XMLFacilityBuilder) DependsOnFacilities ¶
func (fb *XMLFacilityBuilder) DependsOnFacilities() []string
DependsOnFacilities implements FacilityBuilder.DependsOnFacilities
func (*XMLFacilityBuilder) FacilityName ¶
func (fb *XMLFacilityBuilder) FacilityName() string
FacilityName implements FacilityBuilder.FacilityName