I have to say, things like this, you can do very well using mongodb. 
Because its json like structure. And then use lower level pymongo to 
do search.find_one(). Idk how DAL will handle such dbase setup.




On Tuesday, May 19, 2015 at 8:50:22 PM UTC-4, 
[email protected] wrote:
>
> We are developing a RESTful API.  One of our use cases requires that we 
> query a resource with somewhat complex search criteria.  Internally, the 
> search criteria would be represented by a data structure similar to this:
>
> search_criteria = {'date':'5/31/2015',
>                    'locations':[{'location_name':'Los Angeles',
>                                  'attendees':10,
>                                  'services':['Housekeeping','Catering']
>                                 },
>                                 {'location_name':'New York',
>                                  'attendees':5,
>                                  'services':['Housekeeping']
>                                 }
>                    ],
>                    'duration':60
>
> }
>
>
> What would be a recommended strategy for passing complex query parameters to 
> a RESTful API built with web2py?
>
>
> Our short term solution has been to provide simple query parameters that can 
> contain delimited values.  For example:
>
>
>     GET  .../api/available_resources/?date=2015-05-31&locations=Los 
> Angeles|New 
> York&attendees=10|5&services=Housekeeping,Catering|Housekeeping&duration=60
>
>
> But, this seems less than ideal.  It is not intuitive that Los Angeles should 
> be associated with 10 attendees and the two specified services.
>
>
> Options we have considered include:
>
>
>    - Treating the search criteria as a resource.  Thus, we would first POST 
> the complex search criteria and receive a handle in return.  Then, we would 
> GET available_resources, passing the search criteria handle.  (This seems to 
> be messy regarding how to handle the search criteria.  Is it stored 
> statefully in the session?  Is it written to the database?  When would it get 
> cleaned up?)
>    - Treat the search as a command.  We would POST a resource search command 
> with a JSON representation of the search criteria in the body.  
>    - Implement oData parsing for the query string.  (While it is true that 
> oData syntax could be constructed to meet the needs, yikes!, that's a lot of 
> overhead for the API consumer and the API parser.)
>
> Are any of these considered best practice?  Or, is there yet another strategy 
> that we could consider?
>
> Many thanks for your help!
>
> Kevin
>
>
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to