spca2014 hillier build your_own_rest_service
TRANSCRIPT
![Page 1: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/1.jpg)
![Page 2: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/2.jpg)
Build Your Own REST Service with Web API 2
Scot Hillier
MVP
Scot Hillier Technical Solutions, LLC
![Page 4: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/4.jpg)
![Page 5: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/5.jpg)
![Page 6: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/6.jpg)
![Page 7: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/7.jpg)
![Page 8: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/8.jpg)
![Page 9: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/9.jpg)
public IEnumerable<string> Get() {}
public string Get(int id) {}
public void Post([FromBody]string value){}
public void Put(int id, [FromBody]string value){}
public void Delete(int id){}
public class ValuesController : ApiController
![Page 10: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/10.jpg)
config.Routes.MapHttpRoute(name: "DefaultApi",routeTemplate: "api/{controller}/{id}",defaults: new { id = RouteParameter.Optional }
);
![Page 11: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/11.jpg)
"application/json"
"application/xml"
public IQueryable<string> Get(){
var d = new List<string>() {"a", "b" };return d.AsQueryable();
}
public HttpResponseMessage Get(int id){return Request.CreateResponse<string>(HttpStatusCode.OK, data[id - 1]);
}
![Page 12: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/12.jpg)
![Page 13: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/13.jpg)
![Page 14: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/14.jpg)
![Page 15: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/15.jpg)
![Page 16: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/16.jpg)
<Property Name="Id" Type="Edm.Guid" Nullable="false"/><Property Name="Title" Type="Edm.String"/><Property Name="TreeViewEnabled" Type="Edm.Boolean" Nullable="false"/><Property Name="UIVersion" Type="Edm.Int32" Nullable="false"/>
![Page 17: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/17.jpg)
<EntityType Name="Site"><EntityType Name="Web" BaseType="SP.SecurableObject"><EntityType Name="List" BaseType="SP.SecurableObject"><EntityType Name="ListItem" BaseType="SP.SecurableObject" OpenType="true">
<Key><PropertyRef Name="Id"/></Key>
<NavigationProperty Name="RootWeb" …
![Page 18: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/18.jpg)
![Page 19: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/19.jpg)
ApiController
IQueryable
public class ContactsController : ODataController
![Page 20: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/20.jpg)
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();builder.EntitySet<Contact>("Contacts");builder.EntitySet<Company>("Companies");config.Routes.MapODataRoute("odata", "odata", builder.GetEdmModel());
![Page 21: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/21.jpg)
![Page 22: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/22.jpg)
![Page 23: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/23.jpg)
![Page 24: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/24.jpg)
EnableCors
![Page 25: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/25.jpg)
Pre-flight request
Request Headers
Response Headers
![Page 26: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/26.jpg)
![Page 27: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/27.jpg)
![Page 28: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/28.jpg)
![Page 29: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/29.jpg)
![Page 30: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/30.jpg)
![Page 31: Spca2014 hillier build your_own_rest_service](https://reader035.vdocuments.net/reader035/viewer/2022081421/559498001a28ab091f8b4667/html5/thumbnails/31.jpg)