On Feb 7, 2011, at 8:49 AM, Gabriel Carmona wrote:
>
> Hi Jonathan. It was a typo. It'd be service instead of app:
>
> curl --data-urlencode 'fields={"name": "test"}'
> "http://localhost:8000/service/person/create"
>
> Thanks anyway.
The URL rewrite logic isn't handling the case of appending a query string to
the incoming URL properly.
I'm checking to see if this was broken recently, or if it's been broken for a
while. What version are you running?
>
> On Mon, Feb 7, 2011 at 1:21 PM, Jonathan Lundell <[email protected]> wrote:
>> On Feb 6, 2011, at 4:47 PM, Gabriel wrote:
>>>
>>> Hi, I have this json service:
>>>
>>> app/default.py
>>> ...
>>> @service.json
>>> def create(model, fields):
>>> return dict(id=get_model_or_404(model).insert(**json.loads(fields)))
>>>
>>> and I am trying to map this:
>>>
>>> routes_in = (
>>> ('/service/$model/create', '/app/default/call/json/create?model=
>>> $model'),
>>> )
>>>
>>> With this I'd want to do:
>>>
>>> curl --data-urlencode 'fields={"name": "test"}' "http://localhost:8000/
>>> app/person/create"
>>>
>>> and in the create function get model="person" and in fields='{"name":
>>> "test"}'
>>> But it does not work, it is redirecting to default page.
>>> In httpserver.log I get
>>>
>>> 127.0.0.1, 2011-02-06 20:41:12, POST, , HTTP/1.1, 200, 0.330055
>>>
>>> If I do:
>>> curl --data-urlencode 'fields={"name": "test"}' "http://localhost:
>>> 8000/app/default/call/json/create?model=person"
>>> it works, so I think the problem is the routing.
>>>
>>> Any help about what I'm doing wrong?
>>
>> Is it as simple as 'app' in your incoming URL not matching 'service' in the
>> routes pattern?
>>
>>
>>> Thanks for advance.
>>
>>
>>