Sé que hay muchos temas sobre esta pregunta, pero no estoy seguro de entenderlo claramente.
¿Cuándo necesitamos usar el contrato de servicio?
- ¿Están reemplazando el CRUD hecho por
Model
/ResourceModel
? - ¿Necesitábamos crear cada vez un contrato de servicio para cada entidad que utilizará una tabla de datos en el módulo personalizado?
- ¿Son realmente interesantes para el desarrollo futuro?
- ¿Por qué Magento a veces usa
save
/load
del Modelo en Controlador / Bloque, y otras veces no?
Gracias
magento2
custom
service-contract
crud
TaKe_Da_ShAkEr
fuente
fuente
Respuestas:
Básicamente, los contratos de servicio son un conjunto de interfaces que están disponibles para que los módulos declaren API estándar. En términos generales, hay dos categorías de API, la API de datos que expone los métodos CRUD y la API operativa que realmente hace algo.
Los contratos de servicio cumplen una serie de funciones importantes, como:
Ahora, con el uso de interfaces y API, es mucho más claro cómo interactuar con los módulos en el sistema más modular de Magento, ya que solo se comunican a través de API
Todas las clases se documentan a través de sus interfaces, para que sepa exactamente qué hace cada una y cómo su uso afectará toda su implementación.
Recomiendo encarecidamente que tome el curso Magento Fundamentals of magento Development que Magento ofrece gratuitamente hasta el 31/1/2017. Cubre exhaustivamente la descripción general del contrato de servicio y se transfiere a API marco, API de datos y API web
fuente
Los contratos de servicio son muy útiles en Magento2. Definen exactamente qué campos de datos necesita para una entrada. Dado que Magento se desarrolla de manera que tanto los controladores como los procesos y las API web consumen los mismos repositorios y modelos, el contrato de servicio ayuda a que los datos sean iguales en todos ellos. También es útil porque le da la oportunidad de inyectar fábricas y otras cosas con bastante facilidad.
fuente