The only useful paradigm to write in Flask is MethodView's for me [1] because decorators seem hard to refactor for large projects. Please look at adding URLs -- one has to additionally specify methods to match those from the MethodView -- this is code duplication and looks ugly.

It seems though that Fask-RESTful [2] fixes this but then we're dependent on 2 projects.

I don't like that Flask uses a global request object [3]. From Flask documentation

"Basically you can completely ignore that this is the case unless you are doing something like unit testing. You will notice that code which depends on a request object will suddenly break because there is no request object. The solution is creating a request object yourself and binding it to the context."

Yeah, let's make testing even harder...

Pecan looks better in respect of RESTful services [4].
POST parameters are cleanly passed as arguments to the post method. It also provides custom JSON serialization hooks [5] so we can forget about explicit serialization in handlers.

So from these 2 choices I'm for Pecan.

[1] http://flask.pocoo.org/docs/0.10/views/#method-views-for-apis
[2] https://flask-restful.readthedocs.org/en/0.3.0/
[3] http://flask.pocoo.org/docs/0.10/quickstart/#accessing-request-data
[4] http://pecan.readthedocs.org/en/latest/rest.html
[5] http://pecan.readthedocs.org/en/latest/jsonify.html


P.

On 12/03/2014 10:57 AM, Alexander Kislitsky wrote:
We had used Flask in the fuel-stats. It was easy and pleasant and all project requirements was satisfied. And I saw difficulties and workarounds with Pecan, when Nick integrated it into Nailgun.
So +1 for Flask.


On Tue, Dec 2, 2014 at 11:00 PM, Nikolay Markov <nmar...@mirantis.com <mailto:nmar...@mirantis.com>> wrote:

    Michael, we already solved all issues I described, and I just don't
    want to solve them once again after moving to another framework. Also,
    I think, nothing of these wishes contradicts with good API design.

    On Tue, Dec 2, 2014 at 10:49 PM, Michael Krotscheck
    <krotsch...@gmail.com <mailto:krotsch...@gmail.com>> wrote:
    > This sounds more like you need to pay off technical debt and
    clean up your
    > API.
    >
    > Michael
    >
    > On Tue Dec 02 2014 at 10:58:43 AM Nikolay Markov
    <nmar...@mirantis.com <mailto:nmar...@mirantis.com>>
    > wrote:
    >>
    >> Hello all,
    >>
    >> I actually tried to use Pecan and even created a couple of
    PoCs, but
    >> there due to historical reasons of how our API is organized it will
    >> take much more time to implement all workarounds we need to issues
    >> Pecan doesn't solve out of the box, like working with non-RESTful
    >> URLs, reverse URL lookup, returning custom body in 404 response,
    >> wrapping errors to JSON automatically, etc.
    >>
    >> As far as I see, each OpenStack project implements its own
    workarounds
    >> for these issues, but still it requires much less men and hours
    for us
    >> to move to Flask-Restful instead of Pecan, because all these
    problems
    >> are already solved there.
    >>
    >> BTW, I know a lot of pretty big projects using Flask (it's the
    second
    >> most popular Web framework after Django in Python Web
    community), they
    >> even have their own "hall of fame":
    >> http://flask.pocoo.org/community/poweredby/ .
    >>
    >> On Tue, Dec 2, 2014 at 7:13 PM, Ryan Brown <rybr...@redhat.com
    <mailto:rybr...@redhat.com>> wrote:
    >> > On 12/02/2014 09:55 AM, Igor Kalnitsky wrote:
    >> >> Hi, Sebastian,
    >> >>
    >> >> Thank you for raising this topic again.
    >> >>
    >> >> [snip]
    >> >>
    >> >> Personally, I'd like to use Flask instead of Pecan, because
    first one
    >> >> is more production-ready tool and I like its design. But I
    believe
    >> >> this should be resolved by voting.
    >> >>
    >> >> Thanks,
    >> >> Igor
    >> >>
    >> >> On Tue, Dec 2, 2014 at 4:19 PM, Sebastian Kalinowski
    >> >> <skalinow...@mirantis.com <mailto:skalinow...@mirantis.com>>
    wrote:
    >> >>> Hi all,
    >> >>>
    >> >>> [snip explanation+history]
    >> >>>
    >> >>> Best,
    >> >>> Sebastian
    >> >
    >> > Given that Pecan is used for other OpenStack projects and has
    plenty of
    >> > builtin functionality (REST support, sessions, etc) I'd
    prefer it for a
    >> > number of reasons.
    >> >
    >> > 1) Wouldn't have to pull in plugins for standard (in Pecan)
    things
    >> > 2) Pecan is built for high traffic, where Flask is aimed at
    much smaller
    >> > projects
    >> > 3) Already used by other OpenStack projects, so common
    patterns can be
    >> > reused as oslo libs
    >> >
    >> > Of course, the Flask community seems larger (though the
    average flask
    >> > project seems pretty small).
    >> >
    >> > I'm not sure what determines "production readiness", but it
    seems to me
    >> > like Fuel developers fall more in Pecan's target audience than in
    >> > Flask's.
    >> >
    >> > My $0.02,
    >> > Ryan
    >> >
    >> > --
    >> > Ryan Brown / Software Engineer, Openstack / Red Hat, Inc.
    >> >
    >> > _______________________________________________
    >> > OpenStack-dev mailing list
    >> > OpenStack-dev@lists.openstack.org
    <mailto:OpenStack-dev@lists.openstack.org>
    >> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
    >>
    >>
    >>
    >> --
    >> Best regards,
    >> Nick Markov
    >>
    >> _______________________________________________
    >> OpenStack-dev mailing list
    >> OpenStack-dev@lists.openstack.org
    <mailto:OpenStack-dev@lists.openstack.org>
    >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
    >
    >
    > _______________________________________________
    > OpenStack-dev mailing list
    > OpenStack-dev@lists.openstack.org
    <mailto:OpenStack-dev@lists.openstack.org>
    > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
    >



    --
    Best regards,
    Nick Markov

    _______________________________________________
    OpenStack-dev mailing list
    OpenStack-dev@lists.openstack.org
    <mailto:OpenStack-dev@lists.openstack.org>
    http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to