Skip to content
This repository has been archived by the owner on Jan 29, 2020. It is now read-only.

Zend Expressive vs Zend Framework 3 vs Zend Apigility for REST API with Swagger docs? #665

Open
starkskalle opened this issue Jul 23, 2019 · 3 comments
Labels

Comments

@starkskalle
Copy link

starkskalle commented Jul 23, 2019

Hi all,

I have read #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.

@starkskalle starkskalle changed the title Zend Expressive for REST API? Zend Expressive vs Zend Framework 3 vs Zend Apigility for REST API? Jul 23, 2019
@starkskalle starkskalle changed the title Zend Expressive vs Zend Framework 3 vs Zend Apigility for REST API? Zend Expressive vs Zend Framework 3 vs Zend Apigility for REST API with Swagger docs? Jul 23, 2019
@geerteltink
Copy link
Member

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.

@starkskalle
Copy link
Author

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.

@weierophinney
Copy link
Member

This repository has been closed and moved to mezzio/mezzio; a new issue has been opened at mezzio/mezzio#1.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants