astoriawcf-data-services

Why does ADO.NET Data Services use $ as query param identifier?


/Customers?$skip=30&$top=10

Is there a reason why you need '?' or '&' AND '$' to identify a query parameter?

Is this a case of the implementation leaking into the interface? I dont necessarily want to expose to users the blatant fact that I'm using .NET Data Services. especially, if at a later date I want to change the implementation to another technology...

Or, is there an easy way to disable the need for the '$' to identify a query option?

So it looks like a much more presentable...

/Customers?skip=30&top=10    

Thanks


Solution

  • Query string options that start with the $ character are known as System Query Options and denote actions support by ADO.NET Data Services. Basically, this is done to distinguish system-wide "keywords" from model property names.

    To solve this issue, you may try rewriting your URLs from /Customers?skip=30&top=10 to /Customers?$skip=30&$top=10 or even transfer this system information in HTTP headers (if this is an option).