thanks guys to help.
Here I am with another problem. I can not serve the content through a file, for example, when I call the url: http://.../ws_billings/generate_extract_consolidated/1/01-06-2012/21-06-2012/ First parameter, validating a Token. Not implemented yet. Second parameter and third parameter is the start date and end date The browser renders the json by json_encode and displays on the screen. {"0": {"Company": {"id": "47", "name": "ASDASDASDASd"}} How to do this action make this type GET, display the file in companyXYZ-ddmmyy.json? For the software consumer read this feature the file and I want to do the manipulation. And besides it can not generate the XML, it generates an error: Error processing XML: characters useless after a document element Position: http://.../ws_billings/generate_extract_consolidated/1/01-06-2012/21-06-2012/xml/a.xml Number of line 1, column 446: And when I generate JSON <strong> Error 404: </ strong> <strong> The requested address '/ ws_billings/generate_extract_consolidated/1/01-06-2012/21-06-2012/a.json' </ strong> was not found on server. </ P> </ div> <br /> The array that I send to the view is correct. Another detail and doubt that there is a need to specify the type generated, it seems to me that the cake is that through the past extensions. But how to pass an extension of a get method? I left the source code on gist [1] [1] https://gist.github.com/2973381 Em sexta-feira, 22 de junho de 2012 07h56min55s UTC-3, the_woodsman escreveu: > > Sorry to be pedantic, but unless I don't understand these routes, it's > worth mentioning that this example isn't strictly REST: > > *Router::connect('/:candidates/addrecord', array('controller'=> > 'candidates', 'action' => 'addRecord', '[method]' => 'POST')); > Router::connect('/:candidates/editrecord', array('controller'=> > 'candidates', 'action' => 'editRecord', '[method]' => 'POST')); > Router::connect('/:candidates/deleterecord', array('controller'=> > 'candidates', 'action' => 'deleteRecord', '[method]' => 'POST'));* > * > * > REST URLs shouldn't contain any verbs, like add, edit, delete, etc, only > nouns. The verbs are implicit in the method, ie. POST vs PUT vs GET vs > DELETE, rather than all using POST. > > This is an HTTP based API, and there's nothing wrong with that! But just > to be clear about REST vs HTTP, I thought I should mention... > > > On Friday, 22 June 2012 10:14:42 UTC+1, Борислав Събев wrote: >> >> Hi, Lucas. >> >> Firstly if you're developing a REST service it's best to use Cake 2.x and >> higher - you can just use the latest stable version. The new Cake version >> has a lot of improvements which will come in handy when you're doing a REST >> service.Then how would you go about building your REST sevice? I will try >> to describe this as >> a general overview of how things should all work together: >> >> Firstly you should set up some of the aspects of >> Routing<http://book.cakephp.org/2.0/en/development/routing.html> >> . >> Concerning *Router**::mapResources(**);* is the fast way to go - it "is >> used to setup a number of default routes for >> REST<http://book.cakephp.org/2.0/en/development/rest.html#the-simple-setup>access >> to your controllers". >> If you want a more fine grade setup you should consider using custom >> REST >> routing<http://book.cakephp.org/2.0/en/development/rest.html#custom-rest-routing>which >> is what I personally prefer using: >> >> *Router::connect('/:candidates/addrecord', array('controller'=> >> 'candidates', 'action' => 'addRecord', '[method]' => 'POST')); >> Router::connect('/:candidates/editrecord', array('controller'=> >> 'candidates', 'action' => 'editRecord', '[method]' => 'POST')); >> Router::connect('/:candidates/deleterecord', array('controller'=> >> 'candidates', 'action' => 'deleteRecord', '[method]' => 'POST')); >> * >> Once you've configured the routes you can proceed to identifying >> requests. Nevertheless this is still part of the initial Router >> configuration: >> * Router::parseExtensions('xml','json','rss'); *- This will instruct >> the router to parse out file extensions from the URL for e.g.: >> *http://www.example.com/articles.xml* would parse a file extension of >> "xml". What this will yield is that the parsed file extension will become >> available in the Controller's >> $params property (in *$this->params['ext']*). This property is used >> (runtime) by the RequestHandler component to automatically switch to >> alternate layouts and templates, and load helpers corresponding to the >> given content. So this will greatly help you in the development of a REST >> service, if you set all your layouts/views by the conventions. >> >> So what about handling and serving responses to requests? Firstly you >> should add the >> RequestHandler<http://book.cakephp.org/2.0/en/core-libraries/components/request-handling.html>component. >> If you will be using it in all controllers (which should be the >> case :) ) you should add it the AppController's $components property: >> >> *public $components = array( >> 'DebugKit.Toolbar', >> 'Session', >> 'Auth' => array( >> 'loginRedirect' => array('controller' => 'users', >> 'action' => 'index'), >> 'logoutRedirect' => array('controller' => 'users', >> 'action' => 'login') >> ), >> 'RequestHandler' >> ); >> * >> When the application receives a request for e.g. on: * >> http://www.example.com/records.xml* by default this will call* >> RecordsController::**index()*. >> Here's an example structure of a add method: >> * >> public function addRecord() { >> if ($this->request->is('post')) { >> //Authentication ? >> //Validate incoming data >> if ($this->RecorisXmld->saveAll($data)){ >> if($this->RequestHandler->isXml()){ >> //Serve a Xml responce >> } >> if($this->RequestHandler->isRss()){ >> //Serve RSS >> } >> } >> } >> }* >> >> CakePHP now (since 2.1) has Json and Xml view >> classes<http://book.cakephp.org/2.0/en/views/json-and-xml-views.html>. >> What this will do is that for e.g. "After adding 'json' to >> Router::parseExtensions() in your routes file, CakePHP will automatically >> switch view classes when a request is done with the .json extension, or the >> Accept header is application/json." >> >> So this basically is it. By enabling Cake's core features you could be >> able to easily manage a REST service. Hope this helped. >> >> Cheers, >> Borislav. >> >> On Thursday, 21 June 2012 20:26:28 UTC+3, Lucas Simon Rodrigues Magalhaes >> wrote: >>> >>> Hello I need to build an application in Webservice to return data for a >>> particular billing. >>> >>> First I'm using cakePHP version 1.3, and following the cake book [1]. >>> According to according to the book I should map the model which give >>> permission to access REST. >>> I thought about using REST to provide data json / xml instead of nusoap, >>> but I'm sure how to do it. >>> >>> First I'm using cakePHP version 1.3, and following the cake book [1]. >>> According to according to the book I should map the model which give >>> permission to access REST. >>> >>> The problem: >>> In this case I need to perform a find in various tables and perform an >>> operation with her results in a foreach, and then send the answer to this >>> operation via JSON / XML. >>> >>> What I did: >>> I created a controller called ws_billing_controller.php that will manage >>> the requests get to the rest. >>> routes.php -> Router :: mapResources ('') / / empty do not know what to >>> put here >>> routes.php -> Router :: parseExtensions ('json', 'xml'); >>> ws_billing_controller.php -> [2] >>> >>> I wonder if the path I'm following this right, or should I change? >>> [1] http://book.cakephp.org/1.3/pt/view/1239/Configura% C3% A7% C3% >>> A3o-Simple >>> [2] http://dpaste.com/hold/762069/ >>> >> -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php