Darrel  Miller

HTTP API Specialist                                                                                                                             

Montreal (QC, Canada)

Darrel has been building distributed business applications on the Microsoft platform for more than 20 years. He is an active member of the .NET community and OSS contributor.  When he’s not reading IETF specifications in order to answer Stack Overflow questions, or writing tooling to help people build hypermedia driven client applications, you will find him enjoying time with his wife and daughter in Montreal, Quebec. Darrel was a member of the Microsoft Web API advisory board, an Azure Advisor, a Microsoft Integration MVP and co-authored the O'Reilly book, Designing Evolvable Web APIs with ASP.NET.        

  • Has completed
  • Authored 8
  • Professional
    community member
  • Community
    thought leader
  • Community
  • Community
    expert & mentor
  • Most Valued
  • Certified
  • Microsoft
    Certified Trainer

Projects and Achievements

  • What did you achieve?

    Please enter a headline

    In 100 words or so, what made this achievement special?

    Please enter a description

    Skills used or developed

    Please add at least one skill

    Detailed information

    Achievement Details

    • Please ensure that the start date is before the end date (or can you time travel?!)
  • Darrel  has not told us about any achievements yet.

Key Skills

Darrel  has not yet created any achievements mentioning skills.
Verified with

Training and Certifications + Add Education / Certification

  • Darrel  has not told us about any training or certifications that they have completed yet.
  • Please ensure that the start date is before the end date (or can you time travel?!)
    Name of course / certification

    Please enter the name of the course / certification

    Please enter the name of the organization

    Skills developed

    Please add at least one skill

Articles by Darrel 

  1. HTTP Patterns : Bouncer

    A resource designed to accept a request body containing complex query parameters and redirect to a new location to enable the results of complex and expensive queries to be cached.There are practical limitations to the length of a URL on the Web. In order to send complex queries it is sometimes necessary to use a POST method and use the request body to describe the query parameters. However, a POST method cannot return a cached response. If the complex queries take a non-trivial amount of time...
  2. HTTP Patterns : Discovery

    This type of resource is used to provide a client with the information it needs to be able to access other resources. This removes the need for a client to hardcode resource URLs which include information such as the protocol scheme, host, path and query string.The primary problem addressed by a discovery resource is allowing API developers to change various elements of their API without having to notify client developers of the change and potentially force those customers to redeploy their application.
  3. Http Patterns: Progress

    A progress resource is usually a temporary resource that is created automatically by the server to provide status on some long running process that has been initiated by a client. It is used to provide feedback to an end user and point to the results of an operation once it has completed.HTTP is a client/server request and response protocol. It does not provide for server initiated communications. If a client makes a request to a server that is likely to take a long time, e.g. 5 seconds or longer,...
  4. HTTP Patterns : Whack-a-mole

    A type of resource that when deleted, re-appears as a different resource.A user wishes to remove, cancel, make inactive, or archive an entity, but the system wishes to maintain a history that the entity did exist at some point in time and also make that available as a resource.Implement the DELETE method on the resource that is to be affected. The implementation should delete the existing resource as requested and create a new resource to represent the updated entity.
  5. HTTP Patterns : Bucket

    A resource used to indicate the status of a "child" resource.A user wishes to manage a set of resource that over their lifetime will transition through a set of statuses. The user wishes to be able to change the status of a resource and identify resources that have a particular status, whilst ensuring that no resources exist in two states at once.The bucket resource generally returns a list of entities when a GET method is issued.
  6. HTTP Patterns: Miniput

    A resource designed to enable doing a partial update to another resource.It is frequently desirable to allow a client to update a subset of information contained in a resource. The HTTP specification does not allow the PUT method to perform partial updates to a resource. The PATCH method can be used to make an incremental changes to a resource, but it requires a specially formatted patch format payload like JSON-Patch or JSON-Merge-Patch. Also, PATCH is not guaranteed to be idempotent.Creating "child"...
  7. HTTP Patterns : Alias

    A resource designed to provide a logical identifier but without being responsible for incurring the costs of transferring the representation.Sometimes when working with large media files it is desirable to identify the media resource within the same URI space as other resources related to the media resource, however for cost or performance reasons it is prefered to fetch the representation from an alternate location.Through the use of the 307 Temporary Redirect status code and a Location header with...
  8. HTTP Patterns : Factory

    A factory resource is one that is used to create other resources.Sometimes it is difficult to create a complete resource representation on the client without some involvement from the server. It may be that the server is responsible for creating a unique identifier for the new resource, so a PUT request is not possible. Or other attributes of the resource may be dependent on existing server state. For example, creating a order resource where the order quantity may be adjusted based on in-stock quantity.
  9. Edit DRAFT Edit

    • updated