es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Comunicación bidireccional entre Python y .NET Core Web API.

Problema:

Actualmente, estoy intentando construir una aplicación demo en la cual se ejecuta un proceso en Python a través de una API y esta invoca a otra API

Requisitos:

  1. Una Web API de .NET Core (a) protegida mediante el alcance de OAuth2 invoca el proceso en Python
  2. El código en Python se ejecuta y envía una solicitud a otra Web API de .NET Core (b), también protegida, o a alguna función de .NET C# que devuelve datos al código en Python
  3. La API b envía datos de vuelta al proceso en Python
  4. El proceso en Python realiza una tarea

Restricciones:

  1. No se debe utilizar comunicación entre procesos
  2. Lo importante es que las APIs a y b estén protegidas mediante alcance, que se verifique utilizando un access_token en Identity Server 4

Objetivo:

Proteger los puntos finales mediante el alcance de IdentityServer4 y entrenar un modelo de aprendizaje automático con los datos proporcionados por la API y devolver una inferencia

Extras:

¿Puedo utilizar pythonnet para la comunicación entre los proyectos en Python y la Web API de .NET Core?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución:

    Para resolver este problema, debemos seguir estos pasos:

    1. Crear un proyecto .NET Core Web API con protección de alcance OAuth2. Podemos utilizar IdentityServer4 para manejar la autenticación y autorización.
    2. En el controlador de la API a, podemos usar Python.NET para ejecutar un script de Python que invoque a la API b o llame a una función de C# en otro proyecto de .NET Core Web API. Python.NET proporciona una forma sencilla de interpretar código de Python desde aplicaciones .NET.

    3. La API b también necesita estar protegida mediante el mismo alcance que la API a. Debe tener un método para devolver datos al código de Python.

    4. Una vez que el proceso de Python obtiene los datos, puede realizar la tarea necesaria utilizando algoritmos de aprendizaje automático.

    En cuanto a las restricciones especificadas, no podemos utilizar comunicación entre procesos para comunicar las dos API. En su lugar, podemos utilizar solicitudes HTTP para transferir datos entre ellas.

    En cuanto a la pregunta adicional, podemos utilizar Python.NET para comunicarnos entre proyectos de Python y .NET Core Web API. Python.NET proporciona objetos de Python con acceso completo a las bibliotecas .NET y viceversa.

    Con esta solución, podemos proteger ambas APIs a través de los alcances de IdentityServer4 y permitir que un proceso de Python ejecute tareas de aprendizaje automático en los datos obtenidos de las APIs.

Comments are closed.