Service contracts

A service contract is a set of PHP interfaces that is defined by a module. This contract comprises data interfaces and service interfaces.

The role of the data interface is to preserve data integrity, while the role of the service interface is to hide the business logic details from service consumers.

Data interfaces define various functions, such as validation, entity information, search related functions, and so on. They are defined within the Api/Data directory of an individual module. To better understand the actual meaning of it, let's take a look at the data interfaces for the Magento_Cms module. In the vendor/magento/module-cms/Api/Data/ directory, there are four interfaces defined, as follows:

BlockInterface.php BlockSearchResultsInterface.php ...

Get Magento 2 Developer's Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.