forma más limpia de pegar el código de la aplicación Flask generado (Swagger-Codegen) para la implementación del backend

Yo tengo:

una biblioteca que hace [cosas]una definición de API swagger, que es aproximadamente # 1 con pequeñas diferencias para mapear limpiamente a un servicio RESTuna aplicación de matraz generó # 2 usando Swagger-Codegen, por ejemplo, da como resultado que las funciones del controlador de Python sean aproximadamente uno a uno con el # 1.

Mi intención es que la aplicación de matraz (todo el código generado) solo debe manejar la asignación de esa API REST real y el análisis de parámetros para que coincida con la especificación API codificada en swagger. Después de cualquier análisis de parámetros (nuevamente, código generado), debe llamar directamente a mi backend (no generado).

Mi pregunta es, ¿cuál es la mejor manera de conectarlos sin editar manualmente el código python / frasco generado? (La retroalimentación sobre mi diseño o los detalles de un patrón de diseño formal que logre esto también sería genial; soy nuevo en este espacio).

Recién salido del generador, termino con funciones de python como:

def create_task(myTaskDefinition):
    """
    comment as specified in swagger.json
    :param myTaskDefinition: json blah blah blah
    :type myTaskDefinition: dict | bytes
    :rtype: ApiResponse
    """
    if connexion.request.is_json:
        myTaskDefinition = MyTaskTypeFromSwagger.from_dict(connexion.request.get_json())
    return 'do some magic!' # swagger codegen inserts this string :)

En el backend tengo mi lógica real:

def create_task_backend(myTaskDefinition):
    # hand-coded, checked into git: do all the things
    return APIResponse(...)

¿Cuál es la forma correcta de llegar?create_task() llamarcreate_task_backend()?

Por supuesto, si hago cambios de última hora en mi especificación de swagger, tendré que actualizar a mano el código no generado independientemente; sin embargo, hay muchas razones por las que podría querer volver a generar mi API (por ejemplo, agregar / refinar elMyTaskTypeFromSwagger clase, u omitir registrar en git el código generado) y si tengo que editar manualmente el código API generado, entonces todas esas ediciones se eliminan con cada nueva generación.

Por supuesto, podría escribir esto con una ~ gramática simple, por ejemplo. piratería pero si bien esta es mi primera vez con este problema, ¡parece probable que ya se haya resuelto ampliamente!

Respuestas a la pregunta(3)

Su respuesta a la pregunta