24
loading...
This website collects cookies to deliver better user experience
webapi.xml
, seguindo a estruturas de pastas \{Vendor}\{Module}\etc\{area}\webapi.xml.
<?xml version="1.0" ?>
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Webapi:etc/webapi.xsd">
<route method="{METHOD}" url="/V1/{endpoint}/:{paramName}" secure="{true/false}">
<service class="{Vendor}\{Module}\Api\{ApiName}Interface" method="{methodName}"/>
<resources>
<resource ref="{resource_reference}"/>
</resources>
<data>
<parameter name="{parameterName}" force="{true/false}">{value}</parameter>
</data>
</route>
</routes>
<routes>
é o elemento que define a localização do arquivo de esquema XML para a API. O nó <route>
é filho do nó <routes>
e obrigatório para definir qual o método e o endpoint serão utilizados na API.Atributo | Descrição | Obrigatório |
---|---|---|
method | Tipo do método HTTP (GET, POST, PUT e DELETE). | true |
url | A URL para o endpoint exposto da API. Deve iniciar com "/V{integer}/" para indicar o número da versão. | true |
secure | Indica se a rota da API está acessível apenas para protocolo HTTPS. | false |
<service>
é filho do nó <route>
e obrigatório para definir a implementação da API e o método que será chamado.Atributo | Descrição | Obrigatório |
---|---|---|
class | Especifica a localização da interface responsável para a implementação da API. | true |
method | Especifica o nome do método que será executado na interface. | true |
<resources>
é filho do nó <route>
e obrigatório para definir a qual seção(ões) do(s) recurso(s) ACL a API tem acesso. Não possui nenhum atributo.<resource>
é filho do nó <resources>
e obrigatório para definir a qual seção do recurso ACL a API tem acesso. Possui apenas o atributo ref
que pode possuir os seguintes valores:anonymous
: Permite que a API seja pública e podendo ser acessada por visitantes;self
: Para consultar a API é necessário a autenticação com oauth, token, oauth2;
{Vendor}_{Module}::{acl_path}
: Referenciar seção a um recurso ACL para fornecer permissões das configurações.<data>
é filho do nó <route>
e opcional para definir os parâmetros da API através de seus nós filhos. Não possui nenhum atributo.<parameter>
é filho do nó <data>
e obrigatório caso o nó <data>
for especificado. para definir a qual seção do recurso ACL a API tem acesso. Possui apenas o atributo ref
que pode possuir os seguintes valores:Atributo | Descrição | Obrigatório |
---|---|---|
name | Nome do parâmetro. | true |
force | Este atributo garante que em uma rota específica da API, o valor do parâmetro será forçado a usar o valor passado no nó. | false |
@param type $paramName
para indicar o tipo(s) do(s) parâmetro(s) esperado(s) e o nome do parâmetro esperado pela API e a tag @return
para indicar o tipo do retorno do método na API.{
"{bodyName}": {
"{attr}": "{value}",
"{attr}": "{value}",
...
}
}
<?php
namespace {Vendor}\{Module}\Api;
interface {ApiName}Interface
{
/**
* @param {type} $paramName
* @param {type} $bodyName
* @return {returnType}
*/
public function {methodName}({type} $paramName, {type} $bodyName): {returnType};
}
di.xml
, para que o arquivo fique devidamente implementado e possa descrever em como os métodos serão executados.<preference for="{Vendor}\{Module}\Api\{ApiName}Interface" type="{Vendor}\{Module}\Service\{ApiName}" />
<?php
namespace {Vendor}\{Module}\Service;
use {Vendor}\{Module}\Api\{ApiName}Interface;
class {ApiName} implements {ApiName}Interface
{
/**
* @param {type} $paramName
* @param {type} $bodyName
* @return {returnType}
*/
public function {methodName}(type $paramName): {returnType}
{
// Code implementation
}
}
{test}
) devem ser alterados na implementação do código.rm -rf var/generation/
rm -rf generated/
php bin/magento setup:di:compile
- app/
- code/
- {Vendor}/
- {Module}/
- Api/
- {ApiName}Interface.php
- etc/
- di.xml
- module.xml
- Service/
- {ApiName}.php
- registration.php
- composer.json