Did you enable basic authentication, as described here: http://web2py.com/books/default/chapter/29/9#Access-Control-and-Basic-Authentication, and send a valid username and password with your curl or wget request?
Anthony On Thursday, May 31, 2012 1:52:19 AM UTC-4, Sanjeet Roy wrote: > > Anthony i tried the following code it is showing method not allowed when i > want to access :- > > @auth.requires_login() > @request.restful() > def get_project(): > proj=[] > projid=[] > for row in > db(db.assign.employee==auth.user.email).select(db.assign.ALL): > for row1 in db(db.project.id==row.project).select(db.project.ALL): > projid.append(row1.id) > proj.append(row1.name) > return dict(proj=proj,projid=projid) > > On Thu, May 31, 2012 at 10:52 AM, Anthony <[email protected]> wrote: > >> Are you saying you want to be able to login via a curl request? For that, >> you'll probably have to enable basic authentication: >> http://web2py.com/books/default/chapter/29/9#Access-Control-and-Basic-Authentication. >> >> Once logged in, the user record should be available in auth.user. >> >> Anthony >> >> >> On Thursday, May 31, 2012 12:36:08 AM UTC-4, Sanjeet Roy wrote: >>> >>> Hii Anthony >>> I am able to POST and insert the data in to the database can you help me >>> to get the user email who will be authenticated and i will get the data >>> from the database which are associated with the particular user. >>> example:- >>> curl -u [email protected] "http:127.0.0.1:8080/myapp/** >>> api/getdata/proj/id/1/acty<http://127.0.0.1:8080/myapp/api/getdata/proj/id/1/acty> >>> " >>> >>> I get the information of the proj by using his id by following code but >>> how i get the user information who are loged-in. >>> >>> @auth.requires_login() >>> @request.restful() >>> def getdata(): >>> 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) >>> return locals() >>> >>> >>> >>> On Wed, May 30, 2012 at 9:51 AM, Sanjeet Roy <[email protected]>wrote: >>> >>>> Thanks Anthony now i got it and i am able to post the request by using >>>> the CURL >>>> >>>> >>>> On Wed, May 30, 2012 at 8:23 AM, Anthony <[email protected]> wrote: >>>> >>>>> If you want to make a POST >>>>> request<http://en.wikipedia.org/wiki/POST_%28HTTP%29>, >>>>> you need some way to send the post data from a client. The client could >>>>> be >>>>> a browser, in which case you can send post data by submitting a form or >>>>> by >>>>> sending an Ajax POST request. The client could be another server, in >>>>> which >>>>> case, you can use something like urllib2.urlopen() in Python ( >>>>> http://docs.python.org/**library/urllib2.html<http://docs.python.org/library/urllib2.html>) >>>>> >>>>> or the Linux curl command-line utility (http://www.yilmazhuseyin.com/* >>>>> *blog/dev/curl-tutorial-**examples-usage/<http://www.yilmazhuseyin.com/blog/dev/curl-tutorial-examples-usage/>). >>>>> >>>>> You cannot make a POST request by simply visiting a URL in a browser -- >>>>> that will only result in a GET request. >>>>> >>>>> What exactly are you trying to do? How are you intending to make >>>>> requests to this API? >>>>> >>>>> Anthony >>>>> >>>>> >>>>> On Tuesday, May 29, 2012 10:29:06 PM UTC-4, Sanjeet Roy wrote: >>>>>> >>>>>> Hi Anthony actually i didn't get you i want ipost the data something >>>>>> like that which are given in the following link :- >>>>>> >>>>>> http://www.mail-archive.com/**we**[email protected]/**msg70275** >>>>>> .html<http://www.mail-archive.com/[email protected]/msg70275.html> >>>>>> >>>>>> http://vimeo.com/21133657 >>>>>> >>>>>> http://www.reddit.com/r/**progra**mming/comments/g5hxq/**web2py_** >>>>>> trunk_has_a_new_**restful_api_**that_writes_db/**c1l2ykg<http://www.reddit.com/r/programming/comments/g5hxq/web2py_trunk_has_a_new_restful_api_that_writes_db/c1l2ykg> >>>>>> >>>>>> >>>>>> On Wed, May 30, 2012 at 1:09 AM, Anthony <[email protected]> wrote: >>>>>> >>>>>>> You could submit the post request via a form on the page, with the >>>>>>> form's action set to the get_person URL, or you could submit via Ajax, >>>>>>> possibly using jQuery.post() (see http://api.jquery.com/**jQu** >>>>>>> ery.post/ <http://api.jquery.com/jQuery.post/>). >>>>>>> >>>>>>> Anthony >>>>>>> >>>>>>> >>>>>>> On Tuesday, May 29, 2012 3:01:09 PM UTC-4, Sanjeet Roy wrote: >>>>>>>> >>>>>>>> Hii Anthony i have the following in my db:- >>>>>>>> >>>>>>>> db.define_table('person',**Field****('name'),Field('**birthdate','* >>>>>>>> *da**te')) >>>>>>>> db.define_table('dog',Field('**n****ame'),Field('owner',db.** >>>>>>>> person)****,Field('info','text')) >>>>>>>> >>>>>>>> and api.py is my controller :- >>>>>>>> >>>>>>>> @request.restful() >>>>>>>> def get_person(): >>>>>>>> def GET(id): >>>>>>>> person = db.person(id) >>>>>>>> return person.as_dict() if person else None >>>>>>>> def POST(owner,name,info): >>>>>>>> return db.dog.validate_and_insert(**own**** >>>>>>>> er=owner,name=name,info=**info) >>>>>>>> return locals() >>>>>>>> >>>>>>> >>>>>> How can i post and insert the data in to the table dog which are >>>>>> given above . >>>>>> >>>>>> like that :- >>>>>> >>>>>> curl -i -d >>>>>> "info=aInfo&name=aName&owner=**7**4"http://localhost:8000/**restfu**l/api/manage_dog >>>>>> <http://localhost:8000/restful/api/manage_dog> >>>>>> >>>>>> >>>>>> which are given in the above link. >>>>>> >>>>>> >>>> >>> >

