Envío de solicitud unidireccional
SE APLICA A: todos los niveles de API Management
La directiva send-one-way-request
envía la solicitud proporcionada a la dirección URL especificada sin esperar una respuesta.
Nota:
Establezca los elementos de la directiva y los elementos secundarios en el orden proporcionado en la instrucción de directiva. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.
Instrucción de la directiva
<send-one-way-request mode="new | copy" timeout="time in seconds">
<set-url>request URL</set-url>
<set-method>...</set-method>
<set-header>...</set-header>
<set-body>...</set-body>
<authentication-certificate thumbprint="thumbprint" />
</send-one-way-request>
Atributos
Atributo | Descripción | Necesario | Valor predeterminado |
---|---|---|---|
mode | Determina si se trata de una solicitud new o una copy de los encabezado o cuerpo de la solicitud actual. En la sección Directiva de salida, mode=copy no inicializa el cuerpo de la solicitud. Se permiten expresiones de directiva. |
No | new |
timeout | Intervalo de tiempo de espera en segundos antes de que se produzca un error de la llamada a la dirección URL. Se permiten expresiones de directiva. | No | 60 |
Elementos
Elemento | Descripción | Obligatorio |
---|---|---|
set-url | Dirección URL de la solicitud. Se permiten expresiones de directiva. | No en el caso de mode=copy ; de lo contrario, sí. |
set-method | Establece el método de la solicitud. No se permiten expresiones de directiva. | No en el caso de mode=copy ; de lo contrario, sí. |
set-header | Establece un encabezado en la solicitud. Utilice varios elementos set-header para varios encabezados de solicitud. |
No |
set-body | Establece el cuerpo de la solicitud. | No |
authentication-certificate | Certificado que se va a usar para la autenticación de cliente, especificado en el atributo thumbprint . |
No |
proxy | Enruta la solicitud mediante el proxy HTTP. | No |
Uso
- Secciones de directiva: entrante, saliente, back-end, on-error
- Ámbitos de la directiva: global, área de trabajo, producto, API, operación
- Puertas de enlace: clásico, v2, consumo y autohospedado
Ejemplo
Este ejemplo usa la directiva send-one-way-request
para enviar un mensaje a una sala de chat de Slack si el código de respuesta HTTP es mayor o igual que 500. Si desea más información sobre este ejemplo, consulte Uso de servicios externos del servicio Azure API Management.
<choose>
<when condition="@(context.Response.StatusCode >= 500)">
<send-one-way-request mode="new" timeout="20">
<set-url>https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX</set-url>
<set-method>POST</set-method>
<set-body>@{
return new JObject(
new JProperty("username","APIM Alert"),
new JProperty("icon_emoji", ":ghost:"),
new JProperty("text", String.Format("{0} {1}\nHost: {2}\n{3} {4}\n User: {5}",
context.Request.Method,
context.Request.Url.Path + context.Request.Url.QueryString,
context.Request.Url.Host,
context.Response.StatusCode,
context.Response.StatusReason,
context.User.Email
))
).ToString();
}</set-body>
</send-one-way-request>
</when>
</choose>
Directivas relacionadas
Contenido relacionado
Para más información sobre el trabajo con directivas, vea:
- Tutorial: Transformación y protección de una API
- Referencia de directivas para una lista completa de instrucciones de directivas y su configuración
- Expresiones de directiva
- Establecimiento o edición de directivas
- Reutilización de configuraciones de directivas
- Repositorio de fragmentos de código de directiva
- Kit de herramientas de directivas de Azure API Management
- Creación de directivas mediante Microsoft Copilot en Azure