Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
From the book RESTful .NET: Build and Consume RESTful Web Services with .NET 3.5.
RESTful binding, behavior, hosting, and contracts
WebHttpBinding – uses http transport and text encoder.
WebBehavior – end point behavior to dispatch messages based on URIs and HTTP verbs.
WebSericeHost – provides RSTful services hosting configuration [WebServuceHostFactory for IIS/WAS].
WebOperationContext – contains state of the incoming request and outgoing response.
- QueryParameters – holds the collections of query string parameters. Available in IncomdingRequest of WebOperationContext.
WebGetAttribute – applied to methods to handle GET requests
WebInvokeAttribute – applied to methods to handle POST, PUT, DELETE.
- Method - a property that specifies what HTTP method to use [POST – default, PUT, or DELETE]
UriTemplate – specifies the template, mapping between the URI and a method
- “/{Variable}/{Variable}/{Variable}”
- “*”
- “/”
- “{/{Variable}/*}”
- “/Literal/{Variable}”
- “/Literal/NestedLiteralSpecialCase”
- “/Search?q={query}” – for passing parametrs via query string and collecting it using QueryParamenters object.
Serialization methods
Message - represents return value for RESTful service
- Not usually used with non-RESTful WCF [strong type are used instead]
- More complex coding to process the message
- Complete control of the XML
DataContract
- Preferred method non-RESTful regular WCF
- Cannot create attributes, elements only
XnkSerializer
- Better for RESTful WCF
- [XmlSerialization()] for [OperationContract]
- Can create attributes vs. elements [XmlAttribute(Attribute=”name”)] instead [DataMemeber]
Hybrid (DataContract + Message)
- Use DataContract for serialization.
- Use Message.CreateMessage for return type.