Rest and the WCF Web API
Upcoming SlideShare
Loading in...5
×
 

Rest and the WCF Web API

on

  • 3,404 views

 

Statistics

Views

Total Views
3,404
Views on SlideShare
3,402
Embed Views
2

Actions

Likes
0
Downloads
37
Comments
0

2 Embeds 2

http://paper.li 1
http://a0.twimg.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Rest and the WCF Web API Rest and the WCF Web API Presentation Transcript

  • REST and the WCF Web API
    Getting started with REST services and the WCF Web API
    Maurice de Beijer
  • Objectives
    What are REST services
    Why REST instead of SOAP
    The WCF Web API framework
    The next webinar on the 25th of October is about creating HTML5/JavaScript clients for REST services
  • What are REST services
    Representational State Transfer
    A way of creating web services
    Not using the WS-* SOAP specifications
    All about resources
    Not about calling functions, RPC
    Embraces HTTP
    Not just a way of getting data across the wire
    Leverages the structure of the Internet
    URLS
    MIME Media Types
    HTTP Methods
    Caching
    Security
  • The origin of REST
    Architectural Styles and the Design of Network-based Software Architectures
    By Roy Thomas Fielding
    Chapter 5
    One of the authors of the HTTP specification
  • Why are REST services popular
    Almost every platform supports consuming them
    All you need is an HTTP client stack
    Many services are build around resources
    CRUD style
    Enables very scalable services
    Build around the technology that powers the Internet
  • The WCF Web API framework
    On CodePlex
    http://wcf.codeplex.com/wikipage?title=WCF%20HTTP
    Use NuGet from within Visual Studio 2010
    http://nuget.org/
    Current version 0.5
    Much better than the original WCF support for REST
    But doesn’t replace it
  • The resource URL
    The URL is the key to a resource
    http://bookshop.com/books (The collection of books)
    http://bookshop.com/books/12345(An individual book)
    A given URL always returns the same resource
    Deleting one resource doesn’t change the URL of another resource
    But a resource can have multiple URL’s
    http://bookshop.com/orders/12345
    http://bookshop.com/customers/12345/orders/12345
  • Different request/response formats
    Uses standard HTTP MIME Media Types
    http://www.iana.org/assignments/media-types/index.html
    Content Negotiation
    The client specifies a list of acceptable media types
    The server chooses the best supported media type to return
    XML
    Good general purpose data format
    JSON
    Optimised for usage with JavaScript clients
    Custom formats
    Use one of the many IANA types
    Define your own
    Normally prefixed with vnd.
    Example: application/vnd.wordperfect
  • HTTP Status codes
    Tell the client application what happened
    Successful 2xx
    200 OK
    201 Resource created
    Redirection 3xx
    301 Moved Permanently
    Client Error 4xx
    400 Bad request
    404 Not found
    Server Error 5xx
    500 Internal Server Error
    503 Service Unavailable
  • HTTP GET Method
    No side effects
    Can retrieve it as often as you like
    Allows for caching
    Request may never get to the server
    Makes the web as scalable as it is
    Use Accept header to specify the acceptable media type
    Multiple types are supported
    Examples:
    Accept: application/xml
    Accept: application/json
    Accept: image/jpeg, image/*; q=0.5
  • Other HTTP Methods
    POST
    Creates new resource
    Returns the URL to the created resource
    PUT or PATCH
    Replaces/updates resource
    Idempotent
    PATCH only replaces a part of the resource
    DELETE
    Removes resource
    Idempotent
  • Microformats
    Enable a much smarter client application
    Embed allowed actions with a resource
    Client can update the UI based on the resource
    OData is a good example
    Based on AtomPub
    http://www.odata.org
    Roll your own
    Or reuse an existing one from IANA
    Set the content-type
    Use your own application/vnd.xxx
  • Rest is not perfect
    No metadata
    Little tooling in Visual Studio 2010
    It’s harder than it seems
    There is no official REST standard
    There are many strong opinions about what is REST and what is not
  • Usefull resources
    Essential Windows Communication Foundation 4 Training
    http://www.develop.com/training-course/windows-communication-foundation-wcf
    Hypertext Transfer Protocol -- HTTP/1.1
    http://tools.ietf.org/html/rfc2616
    The Atom Syndication Format
    http://tools.ietf.org/html/rfc4287
    The Atom Publishing Protocol
    http://tools.ietf.org/html/rfc5023
    Open Data Protocol (OData)
    http://www.odata.org
    WCF Web API Contrib
    http://webapicontrib.codeplex.com
    Fiddler
    http://www.fiddler2.com
  • Summary
    REST is all about resources
    CRUD actions
    REST embraces HTTP and the web
    HTTP isn’t just a means of moving bits
    REST services are a good way to build scalable services
    Build on the infrastructure of the web
    REST allows for very flexible services
    You control every part of the message