[Flow] Curl PUT doesn't works
Carsten Bleicker
carsten at bleicker.de
Fri Mar 14 15:36:08 CET 2014
maybe i am wrong, but sending put to uri wich contains the identity as {contact}
will result in a mapping by identifier. no further merging of post arguments here.
this you have to make it arives as an array holding the __identity.
correct me if i am wrong
Am 14.03.2014 um 15:02 schrieb Adriano Fialho <afialho.com at gmail.com>:
> My apologies for not having pasted the complete data.
>
> All others curl methods (POST, DELETE, GET) works fine. Only PUT doesn't.
>
> *My route:*
> -
> name: 'Contatos de Marketing'
> uriPattern: 'rest-api/apimentimarketing/contact/{contact}(/{@action})'
> defaults:
> '@controller': 'RestAPI\Contact'
> '@action': 'index'
>
> *My controller: *(only updateAction above)
> namespace Apimenti\Marketing\Controller\RestAPI;
>
> use Apimenti\Marketing\Domain\Model\Contact;
> use TYPO3\Flow\Annotations as Flow;
> use TYPO3\Flow\Mvc\Controller\RestController;
>
>
> /**
> * @Flow\Scope("singleton")
> * @author Adriano Fialho <adriano at apimenti.com.br>
> */
> class ContactController extends RestController {
> protected $defaultViewObjectName = 'TYPO3\\Flow\\Mvc\\View\\JsonView';
> protected $resourceArgumentName = 'contact';
>
> /**
> * @param \Apimenti\Marketing\Domain\Model\Contact $contact
> * @Flow\IgnoreValidation("$contact")
> * @return void
> */
> public function updateAction(Contact $contact) {
> try {
> $this->contactRepository->update($contact);
> $this->response->setStatus(200);
> } catch (\Exception $e) {
> $this->view->setVariablesToRender(array('response'));
> $this->response->setStatus(400);
> $this->view->assign('response', array('error' => $e->getMessage()));
> }
> }
> }
>
>
> --
>
> *Adriano Fialho*
> 71 8637.3450 - 71 9335.9343
> afialho.com - adriano at afialho.com
>
>
> On Fri, Mar 14, 2014 at 10:42 AM, Carsten Bleicker <carsten at bleicker.de>wrote:
>
>> why do you have identity in your uri and also in body arguments?
>> also your controller action seems not to have any annotations wich type of
>> is $contact.
>> please also show the route.
>>
>> example:
>> /**
>> * @param Contact $contact
>> */
>> public function updateAction(Contact $contact){}
>>
>>
>> example route for your request could be:
>> -
>> name: 'Artist Rest'
>> uriPattern: 'contact/{contact.__identity}
>> httpMethods: ['PUT']
>> defaults:
>> '@package': 'Acme.Foo'
>> '@controller': 'Contact'
>> '@action': 'list'
>> '@format': 'json'
>>
>> note: route untested
>>
>>
>>
>> Am 14.03.2014 um 14:31 schrieb Adriano Fialho <afialho.com at gmail.com>:
>>
>>> *My request:*
>>> curl -X PUT -d "contact[name]=New name&contact[__identity]=12345"
>>> http://myservice.com/contact/12345
>>>
>>> *And my rest controller update action:*
>>> public function updateAction($contact){
>>> MyRepository->update($contact)
>>> }
>>>
>>>
>>>
>>> --
>>>
>>> *Adriano Fialho*
>>> 71 8637.3450 - 71 9335.9343
>>> afialho.com - adriano at afialho.com
>>>
>>>
>>> On Fri, Mar 14, 2014 at 9:50 AM, Adriano Fialho <afialho.com at gmail.com
>>> wrote:
>>>
>>>> People,
>>>>
>>>> I tried to do a PUT request with php curl to my Flow RestController,
>> but it
>>>> doesn't works. The request is executed sucessfully, but the
>> updateAction on
>>>> my controller can't update my object on repository.
>>>>
>>>> Do you know anything about that?
>>>>
>>>> --
>>>>
>>>> *Adriano Fialho*
>>>> 71 8637.3450 - 71 9335.9343
>>>> afialho.com - adriano at afialho.com
>>>> _______________________________________________
>>>> Flow mailing list
>>>> Flow at lists.typo3.org
>>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/flow
>>>>
>>> _______________________________________________
>>> Flow mailing list
>>> Flow at lists.typo3.org
>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/flow
>>
>> _______________________________________________
>> Flow mailing list
>> Flow at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/flow
>>
> _______________________________________________
> Flow mailing list
> Flow at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/flow
More information about the Flow
mailing list