restful services-slides
DESCRIPTION
TRANSCRIPT
![Page 1: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/1.jpg)
![Page 2: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/2.jpg)
![Page 3: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/3.jpg)
![Page 4: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/4.jpg)
![Page 5: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/5.jpg)
![Page 6: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/6.jpg)
getUser()addUser()removeUser()...getLocation()addLocation()...
User { }Location { }
<user>
<name>Jane User</name>
<gender>female</gender>
<location href="http://example.org/locations/us/ny/nyc"
>New York City, NY, US</location>
</user>
![Page 7: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/7.jpg)
![Page 8: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/8.jpg)
![Page 9: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/9.jpg)
![Page 10: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/10.jpg)
![Page 11: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/11.jpg)
![Page 12: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/12.jpg)
![Page 13: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/13.jpg)
![Page 14: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/14.jpg)
![Page 15: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/15.jpg)
...
ServiceHost host = new ServiceHost(typeof(EvalService),
new Uri("http://localhost:8080/evals"));
host.AddServiceEndpoint(typeof(IEvals),
new WebHttpBinding(), "");
host.Description.Endpoints[0].Behaviors.Add(
new WebHttpBehavior());
host.Open(); // service is up and running
Console.ReadLine(); // hold process open
...
![Page 16: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/16.jpg)
...
WebServiceHost host = new WebServiceHost(
typeof(EvalService),
new Uri("http://localhost:8080/evals"));
host.Open(); // service is up and running
Console.ReadLine(); // hold process open
...
![Page 17: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/17.jpg)
[ServiceContract]
public interface IEvalService
{
[WebGet(UriTemplate="evals?name={name}&score={score}")]
[OperationContract]
List<Eval> GetEvals(string name, int score);
...
![Page 18: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/18.jpg)
[ServiceContract]
public interface IEvals
{
[WebInvoke(UriTemplate ="/evals?name={name}",Method="PUT")]
[OperationContract]
void SubmitEval(string name, Eval eval /* body */);
...
![Page 19: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/19.jpg)
/services/evals?name={name}&detailed={detailed}
![Page 20: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/20.jpg)
![Page 21: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/21.jpg)
![Page 22: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/22.jpg)
[ServiceKnownType(typeof(Atom10FeedFormatter))]
[ServiceKnownType(typeof(Rss20FeedFormatter))]
[ServiceContract]
public interface IEvalService {
[WebGet(UriTemplate = "evalsfeed")]
[OperationContract]
SyndicationFeedFormatter GetEvalsFeed();
...
}
![Page 23: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/23.jpg)
public class EvalService : IEvalService {
public SyndicationFeedFormatter GetEvalsFeed() {
List<Eval> evals = this.GetEvals();
SyndicationFeed feed = CreateSyndicationFeed(evals);
// figure out what format the client wants
WebOperationContext ctx = WebOperationContext.Current;
string format =
ctx.IncomingRequest.UriTemplateMatch.QueryParameters["format"];
// return the right type of formatted feed
if (format != null && format.Equals("atom"))
return new Atom10FeedFormatter(feed);
else
return new Rss20FeedFormatter(feed);
}
...
![Page 24: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/24.jpg)
[ServiceContract]
public interface IEvals
{
[WebGet(UriTemplate = "/evals?name={nameFilter}",
ResponseFormat = WebMessageFormat.Json)]
[OperationContract]
List<Eval> GetCurrentEvals(string nameFilter);
...
![Page 25: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/25.jpg)
<%@ ServiceHost Language="C#" Service="EvalService" Factory=
"System.ServiceModel.Activation.WebScriptServiceHostFactory" %>
![Page 26: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/26.jpg)
![Page 27: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/27.jpg)
![Page 28: Restful services-slides](https://reader033.vdocument.in/reader033/viewer/2022051108/546fd6e0b4af9f350b8b46c2/html5/thumbnails/28.jpg)