eZ Community » Blogs » Bertrand Dunogier » eZ Publish 5 API winter facelift

By

eZ Publish 5 API winter facelift

Monday 06 February 2012 5:01:07 pm

  • Currently 5 out of 5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Quite a few changes happened last week in the ezp-next github repository. We merged several work repositories into the main ezp-next repository, and are in the middle of cleaning it up.

 

Last year, our effort on Public API started without having a complete specification in place before implementation started. We ended up realizing that this led to severe inconsistencies, and that the result didn’t match what we had in mind for version 2 of the REST API. For these reasons, we decided to respecify the Public API interfaces, based on the ideas and experience we got trying to solve the various features of eZ Publish’s content model.

Last week saw the merge of the Public API interface, as well as a merge of work in progress implementation of this interface that we just started on in cooperation with NetGen. On top of that this weekend also saw the initial commit of a full featured unit test framework for the Public API by QaFoo.

Overview of changes

 

Everything is now in the eZ\Publish namespace. The ezp folder is temporary. What it contains will be either moved or deleted.

  1. eZ\Publish\API is for all public facing APIs. These are the APIs that will be used to implement native eZ Publish modules, as well as custom ones by means of extensions.
  2. eZ\Publish\SPI (Service Provider Interface) contains non public interfaces that might be used through extensions, but not in really public code. Examples: misc handlers needed for FieldTypes (Datatypes), Configuration Parsers, Persistence Handler, or IO (cluster) handler.
  3. eZ\Publish\Core contains the nativement implementation(s) of both API and SPI. In the case of API there will only be one, while in the case of SPI there can be several.

Status

 

  • eZ\Publish\API is now in full public review. Feel free to have a look, ask questions on the share.ez.no forums, or use github through comments or pull requests.
  • eZ\Publish\Core\Repository, the implementation of the Public API Repository being worked on by NetGen in close cooperation with eZ.
  • eZ\Publish\API\Repository\Tests is being worked on by QaFoo, making sure we are delivering a rock solid foundation for the next generation eZ Publish. If you want to see top level tests, this is where you wanna go. Really.
  • eZ\Publish\SPI is being slightly adjusted to match the new API interface. Missing pieces are also being implemented.

 

What’s coming next

 

  • REST 2.0 API implementation with write support. We hope we’ll be able to open the specifications for this soon.
  • Vision documents for eZ Publish Next from high to low level components.
  • Cookbooks describing common problems and how you solve them using the Public API. In the meanwhile, feel free to look in the API Examples folders !

We think we are well on our way to have the Public API complete in the next couple of months, with a whole bunch of unit as well as functionnal tests to ensure the integrity with the eZ Publish database. Stay tuned for more info during the upcoming winter conference and more blog post on the topic in the near future.

Proudly Developed with from