Quantcast
Channel: Segurança – Tiago Sampaio
Viewing all articles
Browse latest Browse all 8

Entendendo as APIs do Magento – SOAP – Introdução

$
0
0

Este post faz parte de uma séries de posts que vou fazer sobre os WebServices do Magento, tanto em SOAP quanto em REST. Espero realmente que curtam este conteúdo e o que está por vir.

A API SOAP v1 do Magento proporciona a possibilidade de gerenciar suas lojas e-commerce fazendo chamadas para trabalhar com os resources do Magento como clientes, produtos e pedidos de vendas. Ele também permite gerenciar os carrinhos de compras e o estoque de cada loja. A API SOAP versão v2 está disponível no Magento desde sua versão 1.3 e uma versão do WS-I compliant está disponível desde sua versão 1.6. Supported Types A API do Magento suporta SOAP e XML-RPC, aonde SOAP é o protocolo padrão. SOAP Para se conectar ao Web Services do Magento via SOAP, carregue o arquivo WSDL em seu cliente SOAP de alguma dessas duas URLs:

http://magentohost/api/?wsdl
http://magentohost/api/soap/?wsdl

Aonde magentohost é o domínio para sua loja Magento. A partir da versão 1.3 você deve usar a URL abaixo para acessar a API v2 do Magento, o qual teve uma melhoria de compatibilidade com Java e .NET:

http://magentohost/api/v2_soap?wsdl=1

O exemplo PHP abaixo mostra como fazer uma chamada SOAP na API v1 do Magento:

[code language=”php”]
$client = new SoapClient(‘http://magentohost/soap/api/?wsdl’);

// If somestuff requires api authentification,
// then get a session token
$session = $client->login(‘apiUser’, ‘apiKey’);

$result = $client->call($session, ‘somestuff.method’);
$result = $client->call($session, ‘somestuff.method’, ‘arg1’);
$result = $client->call($session, ‘somestuff.method’, array(‘arg1’, ‘arg2’, ‘arg3’));
$result = $client->multiCall($session, array(
array(‘somestuff.method’),
array(‘somestuff.method’, ‘arg1’),
array(‘somestuff.method’, array(‘arg1’, ‘arg2’))
));

// If you don’t need the session anymore
$client->endSession($session);
[/code]

XML-RPC

Para utilizar o XML-RPC, carregue a seguinte URL em seu cliente XML-RPC:

http://magentohost/api/xmlrpc/

Aonde magentohost é o domínio para sua loja Magento.

O seguinte exemplo PHP mostra como fazer chamadas XML-RPC:

[code language=”php”]
$client = new Zend_XmlRpc_Client(‘http://magentohost/api/xmlrpc/’);

// If somestuff requires api authentification,
// we should get session token
$session = $client->call(‘login’, array(‘apiUser’, ‘apiKey’));

$client->call(‘call’, array($session, ‘somestuff.method’, array(‘arg1’, ‘arg2’, ‘arg3’)));
$client->call(‘call’, array($session, ‘somestuff.method’, ‘arg1’));
$client->call(‘call’, array($session, ‘somestuff.method’));
$client->call(‘multiCall’, array($session,
array(
array(‘somestuff.method’, ‘arg1’),
array(‘somestuff.method’, array(‘arg1’, ‘arg2’)),
array(‘somestuff.method’)
)
));

// If you don’t need the session anymore
$client->call(‘endSession’, array($session));
[/code]

O XML-RPC suporta apenas a versão 1 da API do Magento.

Métodos da API

A tabela seguinte contem os métodos da API que podem ser chamados de seu cliente SOAP ou XML-RPC na API v1 do Magento.

Method Description Return Value
startSession() Start the API session and return session ID. string
endSession(sessionId) End the API session. boolean
login(apiUser, apiKey) Start the API session, return the session ID, and authorize the API user. string
call(sessionId, resourcePath,array arguments) Call the API resource that is allowed in the current session. See Note below. mixed
multiCall(sessionId, array calls,array options) Call the API resource’s methods that are allowed for current session. See Notes below. array
resources(sessionId) Return a list of available API resources and methods allowed for the current session. array
globalFaults(sessionId) Return a list of fault messages and their codes that do not depend on any resource. array
resourceFaults(sessionId, resourceName) Return a list of the specified resource fault messages, if this resource is allowed in the current session. array

Nota: para chamadas e multiplas chamadas, se nenhuma sessão for especificada, você pode chamar apenas resources que não são protegidos nas chamadas.
Nota: Para múltiplas chamadas, se a opção “break” for especificada, a múltipla chamada para no primeiro erro.

A API v2 do Magento não suporta os métodos call() e multicall(), em vez disso ele fornece um método separado para cada resource da API.

Erros Globais da API

A seguinte tabela contem os códigos dos erros que são aplicados para todas as chamadas SOAP/XML-RPC.

Fault Code Fault Message
0 Unknown Error
1 Internal Error. Please see log for details.
2 Access denied.
3 Invalid api path.
4 Resource path is not callable.

API SOAP Versão v2

Desde a versão 1.3 do Magento, a versão v2 do API do SOAP está disponível. A principal diferença entre v1 e v2 é que ao invés de utilizar os métodos call e multicall, ele separa os métodos para cada ação.

Por exemplo, considere o seguinte código PHP utilizando a v1 do SOAP:

[code language=”php”]
$params = array(array(
‘status’=>array(‘eq’=>’pending’),
‘customer_is_guest’=>array(‘eq’=>’1’))
));
$result = $client->call($sessionId, ‘sales_order.list’, $params);
[/code]

Com o SOAP v2, o seguinte código seria equivalente:

[code language=”php”]
$params = array(‘filter’ => array(
array(‘key’ => ‘status’, ‘value’ => ‘pending’),
array(‘key’ => ‘customer_is_guest’, ‘value’ => ‘1’)
));
$result = $client->salesOrderList($sessionId, $params);
[/code]

Note que o WSDL para a v1 e v2 do SOAP são diferentes. No SOAP v1, customizar a API não envolve a alteração do WSDL. No SOAP v2, as alterações no WSDL são necessárias.

Você pode configurar o SOAP v2 para ser compatível com o WS-I no menu de configurações do sistema. Para fazer a alteração navegue até Services > Magento Core API > WS-I Compliance e altere seu valor para Yes.

Também perceba que o WSDL para o SOAP v1 e v2 são diferentes quando estão em modo compatível com WS-I.

Utilizando a compatibilidade WS-I para o WSDL da API do SOAP v2, fica fácil gerar automaticamente as classes do cliente para Java, .NET e outras linguagens que utilizem bibliotecas padrão.

Um abraço e até a próxima!

Tiago Sampaio


Viewing all articles
Browse latest Browse all 8

Latest Images

Pangarap Quotes

Pangarap Quotes

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Trending Articles


Ang Nobela sa “From Darna to ZsaZsa Zaturnnah: Desire and Fantasy, Essays on...


Dino Rey para colorear


Libros para colorear


Mandalas de flores para colorear


Dibujos para colorear de perros


Renos para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


Love Quotes Tagalog


Kahit may Toyo ka


Mga Tala sa “Unang Siglo ng Nobela sa Filipinas” (2009) ni Virgilio S. Almario


Gwapo Quotes : Babaero Quotes


Winx Club para colorear


Girasoles para colorear


Gato para colorear


Vacas para colorear


Dromedario para colorear


Long Distance Relationship Tagalog Love Quotes


Tagalog Love Facts About Men


RE: Mutton Pies (mely)


El Vibora (1971) by Francisco V. Coching and Federico C. Javinal





Latest Images

Pangarap Quotes

Pangarap Quotes

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC