Operações com o Serviço de Dados REST

Após iniciar o serviço de dados REST do eXtreme Scale, é possível usar qualquer cliente HTTP para interagir com ele. Um navegador da Web, um cliente PHP, um cliente Java ou um cliente WCF Data Services podem ser utilizados para emitir quaisquer operações de pedido suportadas.

O serviço REST implementa um subconjunto da especificação Microsoft Atom Publishing Protocol: Data Services URI and Payload Extensions, Versão 1.0, que faz parte do protocolo OData. Este tópico descreve quais dos recursos da especificação são suportados e como eles são mapeados para o eXtreme Scale.

URI da Raiz do Serviço

O Microsoft WCF Data Services normalmente define um serviço por origem de dados ou modelo de entidade. O serviço de dados REST do eXtreme Scale define um serviço por ObjectGrid definido. Cada ObjectGrid que é definido no arquivo XML de substituição de cliente do ObjectGrid do eXtreme Scale é automaticamente exposto como uma raiz de serviço REST separada.

O URI para a raiz do serviço é:
http://host:port/contextroot/restservice/gridname
Em que:
  • contextroot é definido quando você implementa o aplicativo de serviço de dados REST e depende do servidor de aplicativos
  • gridname é o nome do ObjectGrid

Tipos de Pedidos

A lista a seguir descreve os tipos de pedidos do Microsoft WCF Data Services suportados pelo serviço de dados REST do eXtreme Scale. Para obter detalhes sobre cada tipo de pedido suportado pelo WCF Data Services, consulte: MSDN: Tipos de Pedidos.

Tipos de pedido de inserção
Clientes podem inserir recursos utilizando o verbo POST HTTP com as seguintes limitações:
  • Pedido InsertEntity: Suportado.
  • Pedido InsertLink: Suportado.
  • Pedido InsertMediaResource: Não suportado devido à restrição de suporte do recurso de mídia.
Para obter informações adicionais, consulte MSDN: Inserir Tipos de Pedidos.
Tipos de pedido de atualização
Clientes podem atualizar recursos utilizando os verbos PUT e MERGE HTTP com as seguintes limitações:
  • Pedido UpdateEntity: Suportado.
  • Pedido UpdateComplexType: Não suportado devido à restrição de tipo complexo.
  • Pedido UpdatePrimitiveProperty: Suportado.
  • Pedido UpdateValue: Suportado.
  • Pedido UpdateLink: Suportado.
  • Pedido UpdateMediaResource: Não suportado devido à restrição de suporte do recurso de mídia.
Para obter informações adicionais, consulte: MSDN: Inserir Tipos de Pedidos.
Tipos de pedido de exclusão
Clientes podem excluir recursos utilizando o verbo DELETE HTTP com as seguintes limitações:
  • Pedido DeleteEntity: Suportado.
  • Pedido DeleteLink: Suportado.
  • Pedido DeleteValue: Suportado.
Para obter informações adicionais, consulte: MSDN: Excluir Tipos de Pedidos.
Tipos de pedido de recuperação
Clientes podem recuperar recursos utilizando o verbo GET HTTP com as seguintes limitações:
  • Pedido RetrieveEntitySet: Suportado.
  • Pedido RetrieveEntity: Suportado.
  • Pedido RetrieveComplexType: Não suportado devido à restrição de tipo complexo.
  • Pedido RetrievePrimitiveProperty: Suportado.
  • Pedido RetrieveValue: Suportado.
  • Pedido RetrieveServiceMetadata: Suportado.
  • Pedido RetrieveServiceDocument: Suportado.
  • Pedido RetrieveLink: Suportado.
  • Pedido Retrieve Contendo um Mapeamento de Feed Customizável: Não Suportado.
  • RetrieveMediaResource: Não suportado devido à restrição de recurso de mídia.
Para obter informações adicionais, consulte: MSDN: Recuperar Tipos de Pedidos.
Opções de consulta do sistema
São suportadas consultas que permitem que clientes identifiquem uma coleta de entidades ou uma única entidade. As opções de consulta do sistema são especificadas em um URI de serviço de dados e são suportadas com as seguintes limitações:
  • $expand: Suportada.
  • $filter: Suportada.
  • $orderby: Suportada.
  • $format: Não suportada. O formato aceitável é identificado no cabeçalho do pedido HTTP Accept.
  • $skip: Suportada.
  • $top: Suportada.
Para obter informações adicionais, consulte: MSDN: Opções de Consulta do Sistema.
Roteamento de partição

O roteamento de partição é baseado na entidade raiz. Um URI de pedido infere uma entidade raiz se o caminho do recurso começar com uma entidade raiz ou com uma entidade que tenha uma associação direta ou indireta com a entidade. Em um ambiente particionado, qualquer pedido que não possa inferir uma entidade raiz será rejeitado. Qualquer pedido que infira uma entidade raiz será roteado para a partição correta.

Para obter informações adicionais sobre como definir um esquema com associações e entidades-raiz, consulte o Modelo de Dados Escalável no eXtreme Scale e o Particionamento.

Pedido de Chamada

Pedidos de chamada não são suportados. Para obter informações adicionais, consulte MSDN: Pedido de Chamada.

Pedido em Lote

Clientes podem criar lotes de vários Conjuntos de Mudanças ou Operações de Consulta dentro de um único pedido. Isso pode reduzir o número de roundtrips para o servidor e permite que vários pedidos participem de uma única transação. Para obter informações adicionais, consulte MSDN: Pedido em Lote.

Pedidos em Túnel

Pedidos em túnel não são suportados. Para obter informações adicionais, consulte MSDN: Pedidos em Túnel.