Operações de API para serviços de procura

Exclusivo do Object Storage da SoftLayer, é uma ferramenta de procura abrangente diferente de qualquer uma que você já viu antes. O serviço de procura integrado da SoftLayer permite que os usuários procurem o índice com base em conta, contêiner ou caminho e fornece inúmeros parâmetros para ajudar na filtragem dos resultados da procura. A API do Serviço de procura é construída com base na API do Object Storage existente e indexa meta informações, contêineres e objetos enquanto fornece uma interface familiar para procurar no índice.

Solicitações

Solicitações de procura podem ser feitas para procurar em uma conta inteira, um contêiner específico ou um caminho especificado com base na URL inserida no momento da procura. Utilize um dos exemplos a seguir e seu código de autenticação para executar a procura desejada.

Procura desejada URL
Conta https://dal05.objectstorage.softlayer.net/v1/AUTH_12345ABCDE
Contêiner https://dal05.objectstorage.softlayer.net/v1/AUTH_12345ABCDE/container
Caminho https://dal05.objectstorage.softlayer.net/v1/AUTH_12345ABCDE/container/path

Após acessar a área desejada da API do serviço de busca, uma solicitação GET é executada utilizando o cabeçalho X-Context com o valor de search. Para filtrar resultados, diversos parâmetros estão disponíveis para uso:

Parâmetros

q

A sequência de consulta de procura.

Exemplo:

?q=test

Se especificar campos (incluindo meta informações) ao usar um ponto para separar 'q' e nomes de campos.

Exemplo:

?q.content_type=application

Para meta campos, é possível usar um ponto ou um traço para separar 'meta' do nome-chave meta real.

Exemplos (isto produz resultados idênticos):

?q.meta.foo=bar
?q.meta-foo=bar

campo

Campo a procurar. As configurações padrão procurar o nome e os valores meta customizados.

  • container: nome do contêiner
  • content_type: tipo de conteúdo do objeto
  • count: número de objetos em um contêiner
  • hash: um hash resumido do arquivo (etag)
  • last_modified: registro dateTime indicando a data de modificação mais recente do objeto
  • meta.myfield: valores meta customizados definidos no contêiner ou objeto
  • name: nome do objeto ou contêiner
  • object: nome do objeto
  • read: valor do cabeçalho de leitura do x-container (usado para ACL)
  • write: valor do cabeçalho de gravação do x-container (usado para ACL)

tipo

O tipo de entidade a procurar. O padrão exibe todos os tipos (contêineres e objetos)

  • contêiner
  • objeto

formato

O formato de retorno. Exemplos são mostrados abaixo. Padrão: simples

  • json
  • xml
  • simples

recursivo

Define se a procura será ou não limitada a um nível de diretório ou a procurar recursivamente. Padrão: true

  • true
  • false

Uma consulta de procura básica pode conter um ou mais parâmetros com base em seu retorno desejado.
Ao inserir mais de um parâmetro de procura, separe parâmetros com um e comercial (&).
Por exemplo, para procurar recursivamente em uma conta objetos com o tipo de conteúdo "application/directory" e solicitar o retorno no formato XML, formate a solicitação como a seguir:

GET /v1/<account>?q=application%2Fdirectory&field=content_type&recursive=true&format=xml
X-Context: search
X-Auth-Token: AUTH_SADASDM43423DMSSAZXC234

Respostas

A resposta da API de procura à sua consulta é retornada com um cabeçalho básico e um corpo que pode ser formatado para json, xml ou em texto simples. O cabeçalho de resposta indica o registro de dateTime de sua consulta, o tipo de conteúdo e de retorno, a contagem de retorno e o número total de itens relacionados à sua consulta. O cabeçalho de resposta é formatado da seguinte forma:

HTTP/1.1 200 OK
Date: Thu, 19 Oct 2011 12:00:00 GMT
Content-Type: application/xml; charset=utf-8
X-Search-Items-Count: 3
X-Search-Items-Total: 29

Em seu cabeçalho de resposta, X-Search-Items-Count indica o número de itens incluídos na resposta, enquanto que X-Search-Items-Total indica o número total de itens disponíveis. Se o total exceder a contagem, há itens adicionais que podem ser buscados. Aditar seus parâmetros pode resultar em informações adicionais incluídas em seu retorno.

O corpo de resposta contém várias propriedades relacionadas à sua consulta, incluindo o tipo de conteúdo, última data de modificação, hash MD5, etc. É importante observar que, para qualquer resposta, todas as propriedades associadas aos dados serão retornadas – não há propriedades relacionais ou de contagem, pois não há atualmente nenhum aplicativo para object masks na API de armazenamento do objeto. Exemplos de corpo de resposta em potencial estão abaixo em json, XML e texto simples.

Corpo de Resposta JSON (aplicativo/json)

[
    {
        "container": "test1",
        "content_type": "application/x-python-code",
        "hash": "c23c402de9d67332bce2a73f31a503c3",
        "last_modified": "Wed, 19 Oct 2011 21:26:30 GMT",
        "meta_mtime": "1318343501.0",
        "name": "test.py",
        "object": "test.py",
        "type": "object"
    },
    {
        "container": "test",
        "content_type": "text/plain",
        "hash": "d41d8cd98f00b204e9800998ecf8427e",
        "last_modified": "Mon, 17 Oct 2011 14:31:11 GMT",
        "meta_mtime": "1318861839.0",
        "name": "test_data/3.txt",
        "object": "test_data/3.txt",
        "type": "object"
    }   
]

Corpo de resposta XML (texto/xml)

<?xml version="1.0" encoding="UTF-8"?>
<results>
    <object>
        <container>test1</container>
        <name>test.py</name>
        <object>test.py</object>
        <last_modified>Wed, 19 Oct 2011 21:26:30 GMT</last_modified>
        <content_type>application/x-python-code</content_type>
        <hash>c23c402de9d67332bce2a73f31a503c3</hash>
        <type>object</type>
        <meta_mtime>1318343501.0</meta_mtime>
    </object>
    <object>
        <container>test</container>
        <name>test_data/3.txt</name>
        <object>test_data/3.txt</object>
        <last_modified>Mon, 17 Oct 2011 14:31:11 GMT</last_modified>
        <content_type>text/plain</content_type>
        <hash>d41d8cd98f00b204e9800998ecf8427e</hash>
        <type>object</type>
        <meta_mtime>1318861839.0</meta_mtime>
    </object>
</results>

Corpo de Resposta de Texto Simples (texto/simples)

container: test1
name: test.py
object: test.py
last_modified: Wed, 19 Oct 2011 21:26:30 GMT
content_type: application/x-python-code
hash: c23c402de9d67332bce2a73f31a503c3
type: object
meta_mtime: 1318343501.0
 
container: test
name: test_data/3.txt
object: test_data/3.txt
last_modified: Mon, 17 Oct 2011 14:31:11 GMT
content_type: text/plain
hash: d41d8cd98f00b204e9800998ecf8427e
type: object
meta_mtime: 1318861839.0

Conforme mencionado anteriormente, todas as solicitações podem ser estruturadas para chamar um tipo específico de resposta utilizando os parâmetros listados na seção anterior. Quando estiver familiarizado com a funcionalidade desse serviço, consulte a página Métodos para obter detalhes básicos sobre isso e todos os métodos pertencentes às APIs do Object Storage e do Serviço de procura.