Lookint at providing simple REST API to database tables through web2py. I
used this example from the book:
@request.restful()
def secapi():
response.view = 'generic.'+request.extension
def GET(*args,**vars):
patterns = 'auto'
parser = db.parse_as_rest(patterns,args,vars)
if parser.status == 200:
return dict(content=parser.response)
else:
raise HTTP(parser.status,parser.error)
def POST(table_name,**vars):
return db[table_name].validate_and_insert(**vars)
def PUT(table_name,record_id,**vars):
return db(db[table_name]._id==record_id).update(**vars)
def DELETE(table_name,record_id):
return db(db[table_name]._id==record_id).delete()
return dict(GET=GET, POST=POST, PUT=PUT, DELETE=DELETE)
Now the GET methods work, I can get json responses with curl:
curl http://localhost:8007/apitest/default/secapi/secrets.json
{"content": [{"datavalue": "foobar", "id": 1}, ... ]}
When I POST though:
$ curl --data "datavalue=sometest" http:
//localhost:8007/apitest/default/secapi/secrets.json
I get the response:
errorsid
When I really want the resource URL of the created thing.
It did actually create the row:
curl http://localhost:8007/apitest/default/secapi/secrets/id/20.json
{"content": [{"datavalue": "sometest", "id": 20}]}
So my question is, how do I code the POST such that it returns the
resource URL that was created?
Thanks
--
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.