[Flow] Curl PUT doesn't works
Adriano Fialho
afialho.com at gmail.com
Fri Mar 14 21:42:03 CET 2014
Thx! But doesn's work for me. :(
--
*Adriano Fialho*
71 8637.3450 - 71 9335.9343
afialho.com - adriano at afialho.com
On Fri, Mar 14, 2014 at 3:00 PM, Rémy DANIEL <dogawaf at no-log.org> wrote:
> Hi
>
> I went through this last night.
> If I remember, the identity in the url overrides the body, so it is the
> original object which is passed to updateAction, not the updated one.
>
> This is explained here : http://forge.typo3.org/issues/45290
>
> I had to add objectType to my route, like this :
>
> -
> name: 'Person single GET/POST/DELETE/PUT'
> uriPattern: 'persons/{person}'
> defaults:
> '@package': 'Blueline.api'
> '@controller': 'Person'
> * routeParts:*
> * 'person':*
> * objectType: 'Blueline\Core\Domain\Model\Person'*
>
>
>
>
>
> --
> Rémy
>
>
> 2014-03-14 15:44 GMT+01:00 Adriano Fialho <afialho.com at gmail.com>:
>
> > Got it!
> >
> > In the end, what should I do to perform a update via PUT / Curl? (this is
> > what I'm trying to do).
> >
> > kind regards
> >
> > --
> >
> > *Adriano Fialho*
> > 71 8637.3450 - 71 9335.9343
> > afialho.com - adriano at afialho.com
> >
> >
> > On Fri, Mar 14, 2014 at 11:36 AM, Carsten Bleicker <carsten at bleicker.de
> > >wrote:
> >
> > > 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
> > >
> > > _______________________________________________
> > > 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