ThingWorx Flow > Instalación y configuración > Configuración de ThingWorx Flow > Realización de una llamada externa a ThingWorx Flow
Realización de una llamada externa a ThingWorx Flow
Utilice uno de los métodos siguientes para realizar una llamada externa a ThingWorx Flow:
Realización de una llamada de REST desde un sitio Web externo a ThingWorx Flow
Si un sitio Web intenta realizar una llamada de REST al servidor ThingWorx Flow, el servidor bloquea la solicitud, ya que es una solicitud entre orígenes. Para permitirla, el servidor ThingWorx Flow se debe configurar para permitir solicitudes entre orígenes de sitios Web. Añada un filtro de CORS (uso compartido de recursos entre orígenes) al servidor ThingWorx Flow para activar las solicitudes entre orígenes. Otros sitios Web implementados en un servidor distinto pueden acceder a los datos desde el servidor ThingWorx Flow.
Realice los siguientes pasos para permitir que un sitio Web realice una llamada de REST a ThingWorx Flow:
1. Cierre las instancias de Nginx en ejecución.
2. Abra el fichero vhost-flow.conf en la siguiente ubicación de la instalación de Nginx.
Windows: C:/Archivos de programa/nginx-<versión>/conf/conf.d
Linux: /etc/nginx/conf/conf.d
3. En el fichero vhost-flow.conf, en la sección location /Thingworx, localice la línea proxy_set_header X-Content-Type-Options nosniff; y añada las siguientes líneas:
set $cors '';
# Right side of condition can be regular expression:
# if ($http_origin ~ '^https?://(localhost|www\.yourdomain\.com|www\.yourotherdomain\.com)')
if ($http_origin = '<Origen_que_llama_a_ThingWorx_Flow>') {
set $cors 'true';
}
if ($cors = 'true') {
add_header 'Access-Control-Allow-Origin' "$http_origin" always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
}
# OPTIONS indicates a CORS pre-flight request
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '$http_origin';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
4. Si ThingWorx Foundation y ThingWorx Flow se han instalado en diferentes ordenadores, realice lo siguiente:
Busque la siguiente línea en el fichero vhost-flow.conf:
# add_header Content-Security-Policy
Añada las siguientes líneas debajo de la línea anterior:
add_header Content-Security-Policy "frame-ancestors 'self' <Origen_que_llama_a_ThingWorx_Flow>;";
Es posible integrar como parte del código el nombre de dominio o proporcionar un RegEx. Por ejemplo:add_header Content-Security-Policy "frame-ancestors 'self' https://*.ptcnet.ptc.com;";
5. Reemplace <Origen_que_llama_a_ThingWorx_Flow> por el URL del sitio web que intenta acceder a ThingWorx Flow.
6. Reinicie el servicio Nginx.
Realización de una llamada de WebSocket a ThingWorx Flow
Por defecto, se pueden realizar llamadas de WebSocket Secure (wss) a ThingWorx Flow.
Las llamadas de WebSocket (ws) no se soportan.
¿Fue esto útil?