Apiato: [Proposal] Ship Layer like composer package

Created on 4 Aug 2017  Â·  5Comments  Â·  Source: apiato/apiato

Hi,

I'm looking for a simple solution for API. Found API-Platform from Symfony, but there are few real examples and documentation :(

Currently I am testing and trying to check Apiato for a big project. For now I think that it is great tool, thank you for doing so good job! The container structure is incredibly intuitive :)

But I have some doubts:

  1. upgrade Ship Layer - looking at http://apiato.io/miscellaneous/faq/ -> "How to upgrade apiato?" this is much more complicated than updating a composer package to a new version
  2. change of base code in Ship Layer - in my opinion, this is how I change the code in the vendor, and it happens for example in http://apiato.io/miscellaneous/faq/ - "How to change API URL" or "How to version my API in header instead of URL?" - this should be configurable but now can generate git conflicts
  3. Apiato package - could be a great addition to existing laravel applications that need REST :)

Summarizing, my suggestion is:

  • Ship Layer like composer package with namspace Apiato\Ship, name of package: apiato/ship
  • separate application "apiato" lub "apiato-standard" (like symfony-standard) implements apiato/ship package
  • separate application "apiato-flex" but with only one "Welcome" container when no need for a full solution

Of course, we would add documentation to how to integrate a package with an existing application ;) But the main suggestion is the simplicity of updating to the new version of apiato :)

What do you think about that?

Proposal

Most helpful comment

@lukaszduda simplifying the upgrade is great suggestion. However, the way I see this project is like a starter or framework pretty much upgrading it is like upgrading the Laravel framework (has to be done manually). The Ship layer doesn't provide the features of the project as most of the features live in Containers, like Authentication, Authorization, Localization...

The Ship layer was originally created to contain shared code between containers like General Exceptions, Criteria's, Configs... But some of the code in the Ship layer should definitely be moved to an external package like most of the Engine, Tests, Parents, Generator... which will reduce the possibilities of conflicts.

Let me know what you think of the above.

I'll try to refactor the Ship layer this weekend. And w'll be getting your feedbacks.

All 5 comments

As a quick comment on my parts, now that I've made one B2B API application with Apiato. I will surely be using Apiato for upcoming projects also.

  1. I just recently did my first upgrade. Took half an hour to manually fix conflicts. Yes, this would need improving, but you most likely don't need to do this often. Being able to upgrade via composer would be great thought, looking forward to it!

About apiato-flex – that is a good idea, atleast in that I have found out there to be many features I don't need. Also I needed implement a bit different account and user structure... So when I did that merge, some of those files I had removed earlier came back.

@lukaszduda simplifying the upgrade is great suggestion. However, the way I see this project is like a starter or framework pretty much upgrading it is like upgrading the Laravel framework (has to be done manually). The Ship layer doesn't provide the features of the project as most of the features live in Containers, like Authentication, Authorization, Localization...

The Ship layer was originally created to contain shared code between containers like General Exceptions, Criteria's, Configs... But some of the code in the Ship layer should definitely be moved to an external package like most of the Engine, Tests, Parents, Generator... which will reduce the possibilities of conflicts.

Let me know what you think of the above.

I'll try to refactor the Ship layer this weekend. And w'll be getting your feedbacks.

@Mahmoudz: That's exactly what I meant and I fully agree, so I'm waiting for changes :)

I will close issue after changes.

@lukaszduda @envision Just made a new release today. Introducing the apiato core package.

And here's the upgrade guide :)

@Mahmoudz: thx :)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

vituocgia picture vituocgia  Â·  5Comments

livevasiliy picture livevasiliy  Â·  6Comments

kk86bioinfo picture kk86bioinfo  Â·  6Comments

Mahmoudz picture Mahmoudz  Â·  7Comments

FWidm picture FWidm  Â·  3Comments