Eaííííiiiiii pessoal como vai?

Hoje vou falar sobre uma coisa muuuito bacana do Magento 2, sua API. Pra quem não sabe o Magento 2 assim como o Magento 1 possui uma api onde você pode se comunicar com a plataforma, você pode desde a visualizar os produtos cadastrados até a adicionar uma nova compra. No Magento 1 a API veio sendo adicionada retroativamente, então dependendo da versão ela poderá ter alguns recurso que talvez você não encontre se utilizar a plataforma em uma outra versão. No Magento 2 a api está completíssima, tudo está pronto e redondinho para uso.

Para saber mais sobre a API do Magento 2, como acessar e utilizar você pode começar pelo link da documentação oficial disponível em https://devdocs.magento.com/guides/v2.2/get-started/bk-get-started-api.html. Uma outra dica na hora de consumir a api é utilizar os exemplos do Swagger (https://devdocs.magento.com/swagger/), você pode ver exemplos de requisições e também de resposta de cada método disponível na api.

Mas hoje não estou aqui para falar de como usar a API e sim como adicionar novos métodos a ela. Como eu disse a API do Magento 2 está bem completa, mas vamos pensar que você precise adicionar algum método customizado na API, e aí como que faço? Isso pode acontecer. Então vamos lá.

Bom você vai precisar desenvolver um novo módulo que adicione estes novos métodos de api, depois de construir a arquitetura básica do seu módulo o seu primeiro passo será criar o arquivo webapi.xml dentro do diretório etc. Nesse XML você irá declarar todos os métodos que serão adicionar definindo o path de cada um (caminho na url), qual a interface responsável por declarar o método e qual o nome do método dentro da interface. Um exemplo que você ver e se basear é o do módulo de catalog do próprio core do Magento. Veja em https://github.com/magento/magento2/blob/2.2-develop/app/code/Magento/Catalog/etc/webapi.xml

Você também deve declarar o resource do método, o resource é utilizado para definir o acesso do usuário a este método. Como o Magento possibilita criar acessos com distintos níveis de acesso você pode também limitar o acesso ao método da api por meio de um resource, assim como funciona para as configurações de admin declaradas no adminhtml/system.xml.

Feito isso você deve criar a classe de interface dentro do diretório Api do seu módulo. Nessa interface você irá declarar e documentar todos os métodos que serão os seus métodos customizados de api. Esses métodos serão posteriormente implementados por um Model que irá ser o responsável por receber todos os requests da api e responder ao cliente. Um exemplo é esta interface.

Feito isso agora é só criar o model que será responsável por implementar a interface e nele desenvolver todo o código de cada um dos métodos. Um exemplo é este model.

Pra finalizar é só adicionar um preference no seu di.xml pra que o seu model sempre seja chamado quando a interface for referenciada em alguma chamada. Você pode ver o exemplo de como isso é feito para a interface e o model que usei como exemplo aqui.

Fácil fácil não é? Assim você tem a liberdade de implementar qualquer novo método que você precise e pode tornar a API do Magento 2 ainda mais poderosa do que ela já é.

É isso aí pessoal espero que seja útil a dica. Grande abraço e até a próxima!

Como adicionar novos métodos na API do Magento 2

Igor Ludgero


PHP & Magento Developer from Brazil.


Post navigation


Leave a Reply

Your email address will not be published. Required fields are marked *

Pin It on Pinterest