zend-expressive
zend-expressive copied to clipboard
Zend Expressive vs Zend Framework 3 vs Zend Apigility for REST API with Swagger docs?
Hi all,
I have read https://github.com/zendframework/zend-expressive/issues/342 and I still have a few questions. Firstly, let me describe the scenario.
Current situation Web application written in Zend Framework 1. There are two modules in the ZF1 app structure:
-
"default" model used for the publicly accessible website
-
"admin" model used for web administrators (accessible only by employees of the company) to update the website content and much more things covering the internal processes of the mentioned company
The future Convert the "default" module to an rest API to let 3rd party companies create the public website using this to be developed API to deliver the content. The "admin" module will stay untouched for now.
The question I know I could probably simply tweak the old ZF1 "default" module to serve as an API (remove all the views and update all the controllers to return some JSON structure). But I would like to take this as an opportunity to get my hands on something new. So I am thinking about ZF3, Expressive or Apigility.
I want to deliver simple REST API which would basically serve to:
- deliver content (texts, images) to the website
- offer form validation for the website
- creating few things in the connected DB via posting several forms on the website
What I believe is a must have is a self-generated documentation (I would prefer Swagger) because the API will be used by 3rd party companies to create/redesign the website.
Which of the Zend "frameworks" mentioned above is suited for such a task? What do you guys think?
I pretty much like the Zend Expressive as it is kind of minimalistic and can be tweaked to whatever needed however I am not able to find out whether there is a swagger component. I have found Swagger component for ZF3. And Apigility is a bit mystery to me. It seems like it is a online tool for creating rest apis which sounds interesting and scary at the same time as I cannot imagine myself writing a controller code in a browser but I might be missing something about Apigility.
Thanks you very much and if you want me to clarify anything just let me know.
First of all, we've got a nice forum for questions like this: https://discourse.zendframework.com/
I know I could probably simply tweak the old ZF1 "default" module to serve as an API (remove all the views and update all the controllers to return some JSON structure). But I would like to take this as an opportunity to get my hands on something new. So I am thinking about ZF3, Expressive or Apigility.
Just don't tweak ZF1. ZF1 is end-of-life and is not being updated anymore. Take the opportunity to rebuild it and use Expressive. Once you figured out how powerful the middleware approach is you don't want anything else anymore.
And Apigility is a bit mystery to me. It seems like it is a online tool for creating rest apis which sounds interesting and scary at the same time as I cannot imagine myself writing a controller code in a browser but I might be missing something about Apigility.
I have tried apigility on a rainy Saturday morning and I think this is what Apigility is. A tool to create rest api's. I can't remember if you can write php code inside the browser but I do remember you can use your favorite editor and edit the controllers created by Apigility.
Expressive is not a complete one-time-install package like apigility but all the needed packages are there:
zend-expressive-authentication
zend-expressive-authentication-oauth2
zend-expressive-authorization
zend-expressive-hal
zend-problem-details
Also have a look at zend-expressive-tooling
. It's a cli tool which creates factories, handlers and middleware for you. And if you want to take it to the next level and have fast nodejs like performance:
zend-expressive-swoole
I'm currently building an api myself and about the only thing that is left is documentation. I havent decided yet on what to choose so what I currently have is self written in markdown. But I do need something later on when more resources are added.
Thanks for the link to the forum, I was not aware of it.
Yeah, I want to take the opportunity to try Expressive but I wand to be sure I can easily generate documentation of the Rest API which I can show to the 3rd party companies.
Swoole is interesting but since the App is hosted on a "standard" hosting there is no Swoole support so far.
This repository has been closed and moved to mezzio/mezzio; a new issue has been opened at https://github.com/mezzio/mezzio/issues/1.