REST de IoT Hub

Las API REST para IoT Hub ofrecen acceso mediante programación al dispositivo, la mensajería y los servicios de trabajo, así como al proveedor de recursos, en IoT Hub. Puede acceder a servicios de mensajería desde un servicio de IoT que se ejecute en Azure o directamente en Internet desde cualquier aplicación que pueda enviar una solicitud HTTP y recibir una respuesta HTTP.

Servicio

  • Use esta API para administrar IoT Hub dispositivos gemelos. Puede recuperar y actualizar las propiedades del dispositivo gemelo e invocar métodos directos en los dispositivos.
  • Use estas API para administrar identidades de dispositivo en el registro de identidades de un centro de IoT.
  • Use estas API para administrar trabajos en IoT Hub. Puede programar, cancelar o obtener un trabajo.

Todas las operaciones de tareas se ajustan a la especificación del protocolo HTTP/1.1 y cada operación devuelve un x-ms-request-id encabezado que se puede usar para obtener información sobre la solicitud. Debe asegurarse de que las solicitudes realizadas a estos recursos sean seguras. Para obtener más información, consulte IoT Hub Guía para desarrolladores: seguridad para conocer los detalles sobre cómo crear tokens de seguridad.

Mensajería de dispositivos

Use estas API de un dispositivo para enviar mensajes de dispositivo a nube a un centro de IoT y recibir mensajes de nube a dispositivo desde un centro de IoT. Todas las operaciones de tarea cumplen la especificación del protocolo HTTP/1.1. Debe asegurarse de que las solicitudes realizadas a estos recursos sean seguras. Para obtener más información, consulte IoT Hub Guía para desarrolladores: seguridad para obtener información específica sobre cómo crear tokens de seguridad.

Proveedor de recursos

Use estas API para administrar la implementación de los recursos de IoT Hub. Para más información sobre cómo proteger estas solicitudes, consulte Referencia de la API REST de Azure.

Parámetros y encabezados comunes

La siguiente información es común a todas las tareas relacionadas con IoT Hub:

  • Reemplace {api-version} por "2018-06-30" en el URI.

  • Reemplace {subscription-id} por su identificador de suscripción en el URI.

  • Reemplace {resourceGroupName} por el nombre del grupo de recursos que contiene (o contendrá) el centro de IoT.

  • Reemplace {IoTHubName} por el nombre de su centro de IoT.

  • Establezca el encabezado Content-Type en application/json.

  • Establezca el encabezado Authorization en un token de SAS creado tal y como se especifica en la sección tokens de seguridad de Using IoT Hub security tokens (Uso de tokens de seguridad de IoT Hub).

  • El encabezado Etag se devuelve en todas las solicitudes con ámbito de una única identidad de dispositivo, según RFC7232.

  • Todas las operaciones PUT/PATCH requieren que se especifiquen los siguientes encabezados: If-Match = [*|<etag from get>]

  • Las operaciones DELETE pueden incluir el siguiente encabezado: If-Match = [*|<etag from get>]

El comportamiento de ETags se puede ver a continuación:

PUT El recurso no existe El recurso existe
If-Match = "" / absent 201 Creado 200 OK
If-Match = "*" 412 Error de condición previa 200 OK
If-Match = "xyz" 412 Error de condición previa 200 OK/ 412 Error de condición previa
If-None-Match = "*" 201 Creado 412 Error de condición previa
Delete El recurso no existe El recurso existe
If-Match = "" / absent 204 No Content 200 OK
If-Match = "*" 204 No Content 200 OK
If-Match = "xyz" 204 No Content 200 OK/ 412 Error de condición previa

Para llamadas asincrónicas:

  • PUT responde con 201 Creado con Azure-AsyncOperation encabezado para las operaciones asincrónicas. Todas las operaciones sincrónicas (actualizaciones) devuelven 200 OK.

  • DELETE devuelve 202 Aceptado con encabezados location y Retry-After, así como Azure-AsyncOperation encabezado para los recursos que existen.

  • El encabezado location contiene la dirección URL del resultado de la operación.

  • Retry-After encabezado contiene el intervalo de reintento adecuado en segundos.

  • Azure-AsyncOperation encabezado contiene la dirección URL para el estado del resultado de la operación asincrónica.

  • Al finalizar, la dirección URL del resultado de la operación GET genera exactamente el mismo resultado que si la operación original se hubiera completado de forma sincrónica.