Serviços da Web e listas de códigos

5

Nossa equipe discute profundamente as questões sobre como lidar com a lista de códigos em uma definição de serviço da web. O objetivo do design é descrever uma API do provedor para consultar um sistema usando vários valores. Alguns deles são catálogos resp. listas de códigos. Um catálogo ou lista de códigos é um conjunto de pares de valores-chave. Existem sistemas diferentes (pelo menos 3) mantendo listas de códigos possivelmente diferentes. Cada sistema deve implementar a API do provedor, enquanto cada sistema pode ter uma lista de códigos diferente para a mesma entidade comercial, por exemplo. pense em cores. Um sistema sabe [(1, 'vermelho'), (2, 'verde')] e outro sabe [(1, 'lightgreen'), (2, 'darkgreen'), (3, 'red')] etc .

O acesso às diferentes implementações da API do provedor será encapsulado por um serviço de consulta, mas já existe um candidato que pode usar pelo menos uma API do provedor diretamente.

As opções atuais para projetar a API discutida são:

  1. use uma lista de códigos abstrata na definição de interface: a interface de serviço da web define um conjunto conhecido de listas de códigos que devem ser usadas para consultar e retornar dados. Cada implementação de provedor de API tem que mapear os valores de solicitação e resposta dessas listas de códigos abstratas para o sistema específico.
  2. permite que o componente de consulta manipule a lista de códigos: o serviço de consulta de encapsulamento conhece o conjunto de listas de códigos de cada implementação da API do provedor e cuida do mapeamento da entrada e saída para as listas de códigos específicas do sistema.
  3. não use listas de códigos na definição da consulta: basta consultar as listas de códigos por uma string simples e permitir que a implementação da API do provedor calcule o valor correto. Isso pode levar a uma perda de informações e possivelmente muitos falsos positivos, devido ao fato de que a cadeia de entrada não poderia ser canônica mapeada para um valor de lista de códigos (por exemplo, verde - > lightgreen ou verde - > darkgreen ou ambos)

Quais são suas experiências resp. soluções para tal problema? Você poderia dar alguma recomendação?

    
por 0x0me 30.10.2013 / 00:22
fonte

2 respostas

1

Eu já usei a opção 2 no passado, é menos doloroso para os clientes e para adicionar novos consumidores: você pode compor códigos e significados, de modo a tornar a adição de outro cliente indolor e, nesse sentido, essa é a mais maneira útil.

Você precisará de cada cliente para fornecer um dicionário, e talvez alguém de cada lado, para descobrir equivalências sempre que houver imprecisão (que, na minha experiência, pode ser muito frequente).

    
por 30.10.2013 / 01:49
fonte
0

Como você mapeia o que o cliente pode enviar para os dados que a API exige?

Quero dizer, se eu entendi a pergunta corretamente, é sobre fornecer um serviço web que envolve várias outras APIs, por exemplo, um serviço de entrega de pizza que passa pedidos para as pizzarias de Tony ou John, mas Tony faz Deep Pan e Thin Crust e John faz o tradicional, recheado de crosta e integral.

Você pode implementar um método que retorne essas opções ao cliente, para que elas possam perguntar "quais opções eu tenho" e, em seguida, usar essas opções nas chamadas subsequentes.

    
por 27.06.2014 / 09:43
fonte