Cloud Jasmin Casos Uso Comuns
Casos Uso Comuns
Casos Uso Comuns
Voltar | Lista de artigos

Como obter uma lista de encomendas?

Última alteração a 24/08/2022

O exemplo de utilização da Web API Jasmin ilustra a utilização da API para obter a lista de encomendas disponíveis no sistema.

O código apresentado foi desenvolvido em C# para numa aplicação de consola e o código fonte do exemplo está disponível no repositório de exemplos Jasmin ou Rose.

Conceitos

AccountKey e SubscriptionKey

Em primeiro lugar, é necessário definir estes dois parâmetros, que são requeridos pela Web API e que identificam de forma inequívoca a subscrição (Base Dados) do cliente. No seguinte exemplo, que consta no ficheiro Constants.cs.

internal class RoseConstants
{
    internal const string AccountKey = "HXDID1P";
    internal const string SubscriptionKey = "HXDID7M-HXDIDGJ";
}

Access token

Para aceder à Web API também é necessário o token de autenticação associado ao utilizador e à subscrição. No ficheiro Constants.cs, estão as constantes definidas como clientId e clientSecret (neste caso estamos a usar o fluxo de autenticação Client Credentias) é exemplificado um pedido para obtenção do token através da chamada ao método GetAccessTokenAsync disponivél na classe AuthenticationProvider.cs.

// Get the authorization access token
string accessToken = await GetAccessTokenAsync();
Console.WriteLine(accessToken != null ? "Authorization token found." : "Authorization token not found.");

HttpClient

Para fazer chamadas a uma Web API REST em C# pode utilizar-se a seguinte classe:

System.Net.Http.HttpClient

Como no exemplo:

using (HttpClient client = new HttpClient())
{
    (…)
}

Configuração do access token

Os pedidos à Web API requerem sempre o access token anterior. Deve ser incluído nos headers do pedido.

client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", AccessToken);

Dados da encomenda

No caso do endpoint de consulta de encomendas, os dados da encomenda serão devolvidos no corpo da mensagem do resultado em formato JSON.

Para o efeito, criamos uma classe C# muito simples que inclui apenas os atributos da encomenda necessários para o exemplo.

internal class OrderResource
{
    #region Internal Properties
  
    public Guid Id
    {
        get;
        set;
    }
    public string DocumentType
    {
        get;
        set;
    }
    public string Serie
    {
        get;
        set;
    }
    public int SeriesNumber
    {
        get;
        set;
    }
    public string Company
    {
        get;
        set;
    }

    #endregion
}

Execução do pedido

Neste momento a chamada à Web API pode ser executada a partir de um HTTP Client. Note-se que na construção do pedido deve constar sempre o URL base do produto seguido da palavra "api", da AccountKey e SubscriptionKey terminando com o modulo e a entidade sobre a qual a operação será realizada.

// URI of the endpoint

string endpoint = string.Format(CultureInfo.CurrentCulture, "{0}/{1}/{2}/sales/orders", ApiBaseAddress, AccountKey, SubscriptionKey);

// Send the request (POST)

Uri endpointUri = new Uri(endpoint);
using (HttpResponseMessage response = await client.PostAsync(endpointUri, content))
{
    (…)
}
Adicionar aos favoritos ou partilhar este artigo
Esta página foi útil?
Obrigado pelo seu voto.
Artigos Relacionados
Como criar uma encomenda de vendas? Como obter o pdf de um documento? Como obter uma lista de encomendas? Como criar uma encomenda de vendas? Como obter o pdf de um documento?