Início Rápido: Verificar a ortografia com a API REST de Verificação Ortográfica do Bing e o Java

Aviso

Em 30 de outubro de 2020, as APIs de Pesquisa do Bing foram migradas dos serviços de IA do Azure para os Serviços de Pesquisa do Bing. Esta documentação é fornecida apenas para referência. Para obter a documentação atualizada, consulte a documentação da API de pesquisa do Bing. Para obter instruções sobre como criar novos recursos do Azure para a Pesquisa do Bing, consulte Criar um recurso de Pesquisa do Bing por meio do Azure Marketplace.

Use este Início Rápido para fazer sua primeira chamada à API REST de Verificação Ortográfica do Bing. Este aplicativo Java simples envia uma solicitação à API e retorna uma lista de correções sugeridas.

Embora esse aplicativo seja escrito em Java, a API é um serviço Web RESTful compatível com a maioria das linguagens de programação. O código-fonte desse aplicativo está disponível no GitHub.

Pré-requisitos

  • O JDK (Java Development Kit) 7 ou posterior.

  • Importe o gson-2.8.5.jar ou a versão mais atual do Gson. Para a execução de linha de comando, adicione o .jar à pasta do Java com a classe principal.

Criar um recurso do Azure

Comece usando a API de Verificação Ortográfica do Bing criando um dos seguintes recursos do Azure:

Recurso de Verificação Ortográfica do Bing

  • Disponível por meio do portal do Azure até que você exclua o recurso.
  • Use o tipo de preço gratuito para experimentar o serviço e atualize mais tarde para uma camada paga para produção.
  • A API de Verificação Ortográfica do Bing também é oferecida em algumas camadas do recurso Pesquisa do Bing v7.

Recurso de vários serviços

  • Disponível por meio do portal do Azure até que você exclua o recurso.
  • Use a mesma chave e ponto de extremidade para seus aplicativos nos vários serviços de IA do Azure.

Criar e inicializar um aplicativo

  1. Crie um projeto Java em seu IDE ou editor favorito com um nome de classe de sua escolha e, em seguida, importe os seguintes pacotes:

    import java.io.*;
    import java.net.*;
    import com.google.gson.*;
    import javax.net.ssl.HttpsURLConnection;
    
  2. Crie variáveis para o host do ponto de extremidade de API, o caminho e a chave de assinatura. Em seguida, crie variáveis para o mercado, o texto do qual deseja fazer a verificação ortográfica e uma cadeia de caracteres para o modo de verificação ortográfica. É possível usar o ponto de extremidade global no código a seguir ou o ponto de extremidade do subdomínio personalizado exibido no portal do Azure para seu recurso.

    static String host = "https://api.cognitive.microsoft.com";
    static String path = "/bing/v7.0/spellcheck";
    
    static String key = "<ENTER-KEY-HERE>";
    
    static String mkt = "en-US";
    static String mode = "proof";
    static String text = "Hollo, wrld!";
    

Criar e enviar uma solicitação de API

  1. Crie uma função chamada check() para criar e enviar a solicitação da API. Nessa função, adicione o código especificado nas próximas etapas. Crie uma cadeia de caracteres para os parâmetros de solicitação:

    1. Atribua seu código de mercado ao parâmetro mkt com o operador =.

    2. Adicione o parâmetro mode com o operador & e, em seguida, atribua o modo de verificação ortográfica.

    public static void check () throws Exception {
        String params = "?mkt=" + mkt + "&mode=" + mode;
        // add the rest of the code snippets here (except prettify() and main())...
    }
    
  2. Crie uma URL combinando o host do ponto de extremidade, o caminho e a cadeia de caracteres de parâmetros. Crie um objeto HttpsURLConnection.

    URL url = new URL(host + path + params);
    HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
    
  3. Abra uma conexão com a URL. Defina o método de solicitação como POST e adicione os parâmetros de solicitação. Adicione a chave de assinatura ao cabeçalho Ocp-Apim-Subscription-Key.

    connection.setRequestMethod("POST");
    connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    connection.setRequestProperty("Ocp-Apim-Subscription-Key", key);
    connection.setDoOutput(true);
    
  4. Crie um objeto DataOutputStream e envie a solicitação à API.

    DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
    wr.writeBytes("text=" + text);
    wr.flush();
    wr.close();
    

Formatar e ler a resposta da API

  1. Adicione o método prettify() à sua classe, que formata o JSON para uma saída mais legível.

    // This function prettifies the json response.
    public static String prettify(String json_text) {
        JsonParser parser = new JsonParser();
        JsonElement json = parser.parse(json_text);
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        return gson.toJson(json);
    }
    
  2. Crie um BufferedReader e leia a resposta da API. Imprima-a no console.

    BufferedReader in = new BufferedReader(
    new InputStreamReader(connection.getInputStream()));
    String line;
    while ((line = in.readLine()) != null) {
      System.out.println(prettify(line));
    }
    in.close();
    

Chamar a API

Na função principal do aplicativo, chame o método check() criado anteriormente.

public static void main(String[] args) {
    try {
        check();
    }
    catch (Exception e) {
        System.out.println (e);
    }
}

Executar o aplicativo

Compile e execute seu projeto. Se estiver usando a linha de comando, use os seguintes comandos para criar e executar o aplicativo:

  1. Crie o aplicativo:

    javac -classpath .;gson-2.2.2.jar\* <CLASS_NAME>.java
    
  2. Executar o aplicativo:

    java -cp .;gson-2.2.2.jar\* <CLASS_NAME>
    

Resposta JSON de exemplo

Uma resposta com êxito é retornada em JSON, conforme mostrado no seguinte exemplo:

{
   "_type": "SpellCheck",
   "flaggedTokens": [
      {
         "offset": 0,
         "token": "Hollo",
         "type": "UnknownToken",
         "suggestions": [
            {
               "suggestion": "Hello",
               "score": 0.9115257530801
            },
            {
               "suggestion": "Hollow",
               "score": 0.858039839213461
            },
            {
               "suggestion": "Hallo",
               "score": 0.597385084464481
            }
         ]
      },
      {
         "offset": 7,
         "token": "wrld",
         "type": "UnknownToken",
         "suggestions": [
            {
               "suggestion": "world",
               "score": 0.9115257530801
            }
         ]
      }
   ]
}

Próximas etapas