Inicio rápido: Revisión ortográfica con la API REST de Bing Spell Check y C#Quickstart: Check spelling with the Bing Spell Check REST API and C#

Use este inicio rápido para realizar la primera llamada a la API REST de Bing Spell Check.Use this quickstart to make your first call to the Bing Spell Check REST API. Esta sencilla aplicación de C# envía una solicitud a la API y devuelve una lista de correcciones sugeridas.This simple C# application sends a request to the API and returns a list of suggested corrections. Si bien esta aplicación está escrita en C#, la API es un servicio web RESTful compatible con la mayoría de los lenguajes de programación.While this application is written in C#, the API is a RESTful Web service compatible with most programming languages. El código fuente de esta aplicación está disponible en GitHub.The source code for this application is available on GitHub.

Requisitos previosPrerequisites

  • Cualquier edición de Visual Studio 2017 o posterior.Any edition of Visual Studio 2017 or later.
  • Para instalar Newtonsoft.Json como un paquete NuGet en Visual Studio:To install Newtonsoft.Json as a NuGet package in Visual studio:
    1. En el Explorador de soluciones, haga clic con el botón derecho en el archivo Solution.In Solution Explorer, right-click the Solution file.
    2. Seleccione Administrar paquetes NuGet para la solución.Select Manage NuGet Packages for Solution.
    3. A continuación, busque Newtonsoft.Json e instale el paquete.Search for Newtonsoft.Json and install the package.
  • Si usa Linux o MacOS, esta aplicación puede ejecutarse con Mono.If you're using Linux/MacOS, this application can be run using Mono.

Debe tener una cuenta de Cognitive Services API con acceso a Bing Spell Check API.You must have a Cognitive Services API account with access to the Bing Spell Check API. Si no tiene una suscripción de Azure, puede crear una cuenta gratuita.If you don't have an Azure subscription, you can create an account for free. Antes de continuar, necesitará la clave de acceso que se le proporcionó al activar la versión de evaluación gratuita o puede usar una clave de suscripción de pago desde el panel de Azure.Before continuing, You will need the access key provided after activating your free trial, or a paid subscription key from your Azure dashboard.

Creación e inicialización de un proyectoCreate and initialize a project

  1. Cree una solución de consola denominada SpellCheckSample en Visual Studio.Create a new console solution named SpellCheckSample in Visual Studio. Después, agregue los siguientes espacios de nombres en el archivo de código principal.Then add the following namespaces into the main code file.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net.Http;
    using System.Net.Http.Headers;
    using System.Text;
    using Newtonsoft.Json;
    
  2. Cree variables para el punto de conexión de API, la clave de suscripción y el texto cuya ortografía se va a revisar.Create variables for the API endpoint, your subscription key, and the text to be spell checked.

    namespace SpellCheckSample
    {
        class Program
        {
            static string host = "https://api.cognitive.microsoft.com";
            static string path = "/bing/v7.0/spellcheck?";
            static string key = "<ENTER-KEY-HERE>";
            //text to be spell-checked
            static string text = "Hollo, wrld!";
        }
    }
    
  3. Cree una variable para los parámetros de búsqueda.Create a variable for your search parameters. Anexe el código de mercado después de mkt=.Append your market code after mkt=. El código de mercado es el país desde el que se realiza la solicitud.The market code is the country you make the request from. Anexe también el modo de revisión ortográfica después de &mode=.Also, append your spell-check mode after &mode=. El modo es proof (detecta la mayoría de los errores de ortografía y de gramática) o spell (detecta la mayoría de los errores de ortografía, pero no tanto los de gramática).Mode is either proof (catches most spelling/grammar errors) or spell (catches most spelling but not as many grammar errors).

    static string params_ = "mkt=en-US&mode=proof";
    

Creación y envío de una solicitud de revisión ortográficaCreate and send a spell check request

  1. Cree una función asincrónica llamada SpellCheck() para enviar una solicitud a la API.Create an asynchronous function called SpellCheck() to send a request to the API. Cree un objeto HttpClient y agregue su clave de suscripción al encabezado Ocp-Apim-Subscription-Key.Create a HttpClient, and add your subscription key to the Ocp-Apim-Subscription-Key header. A continuación, realice los pasos siguientes dentro de la función.Then perform the following steps within the function.

    async static void SpellCheck()
    {
        HttpClient client = new HttpClient();
        client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", key);
    
        HttpResponseMessage response = new HttpResponseMessage();
        // add the rest of the code snippets here (except for main())...
    }
    
  2. Cree el URI para la solicitud mediante la anexión de su host, ruta de acceso y parámetros.Create the URI for your request by appending your host, path, and parameters.

    string uri = host + path + params_;
    
  3. Cree una lista con un objeto KeyValuePair que contenga el texto y úsela para crear un objeto FormUrlEncodedContent.Create a list with a KeyValuePair object containing your text, and use it to create a FormUrlEncodedContent object. Establezca la información de encabezado y use PostAsync() para enviar la solicitud.Set the header information, and use PostAsync() to send the request.

    List<KeyValuePair<string, string>> values = new List<KeyValuePair<string, string>>();
    values.Add(new KeyValuePair<string, string>("text", text));
    
    using (FormUrlEncodedContent content = new FormUrlEncodedContent(values))
    {
        content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
        response = await client.PostAsync(uri, content);
    }
    

Obtención e impresión de la respuesta de la APIGet and print the API response

Obtención del encabezado de identificador de clienteGet the client ID header

Si la respuesta contiene un encabezado X-MSEdge-ClientID, obtenga el valor e imprímalo.If the response contains an X-MSEdge-ClientID header, get the value and print it.

string client_id;
if (response.Headers.TryGetValues("X-MSEdge-ClientID", out IEnumerable<string> header_values))
{
    client_id = header_values.First();
    Console.WriteLine("Client ID: " + client_id);
}

Obtención de la respuestaGet the response

Obtenga la respuesta de la API.Get the response from the API. Deserialice el objeto JSON e imprímalo en la consola.Deserialize the JSON object, and print it to the console.

string contentString = await response.Content.ReadAsStringAsync();

dynamic jsonObj = JsonConvert.DeserializeObject(contentString);
Console.WriteLine(jsonObj);

Llamada a la función de revisión ortográficaCall the spell check function

En la función principal del proyecto, llame a SpellCheck().In the Main function of your project, call SpellCheck().

static void Main(string[] args)
{
    SpellCheck();
    Console.ReadLine();
}

Ejemplo de respuesta JSONExample JSON response

Se devuelve una respuesta correcta en JSON, como se muestra en el siguiente ejemplo:A successful response is returned in JSON, as shown in the following example:

{
   "_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
            }
         ]
      }
   ]
}

Pasos siguientesNext steps