- From: Thomas Hoppe <thomas.hoppe@n-fuse.de>
- Date: Wed, 23 Apr 2014 21:17:49 +0200
- To: public-hydra@w3.org
> The other problem with this approach ist hat {property} would have to be > expanded to a full URL as otherwise. So you would end up with very long and > ugly URLs. This idea was definitely not a final solution I just wanted to exemplify what I mean. A better solution would maybe involve the definitions in the context to type coerce like in JSON-LD... >> Which would allow to describe the diversity of current filtering >> notations found in APIs. > I don't know of many APIs that allow completely arbitrary filtering. Most of > them are quite restricted... which makes sense because filtering might be a > quite costly operation especially if there are lots of properties. If you look around, there are many existing REST API and frameworks that let you define filters in a generic manner: http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#advanced-queries http://www.django-rest-framework.org/api-guide/filtering http://developer.zendesk.com/documentation/rest_api/search.html I also think that we should not limit us because of concerns like server load. We should anticipate the best API we can think of and, as you always say, "keep the simple case simple". In current DB technologies it is pretty much the same whether you filter for a string, integer, boolean or whatever column as long as you care about proper indexing. Speaking from a consumer perspective: In 2014 users expect from an API that it is sortable by any property. Moreover, if a server has issues to filter for a certain property or combinations thereof, it can report this back in a restful manner. > If you > really want to allow completely arbitrary filtering, it might actually make > more sense to just send a SPARQL query or something similar. I'm not sure. > Thoughts? > Arbitrary querying is definitely something for dedicated languages like SPARQL, SQL, OData etc. But my concern here is not arbitrary querying - just filtering for any property in a collection. And I think explicitly announcing that every single property might be filterable is very verbose.
Received on Wednesday, 23 April 2014 19:18:17 UTC