Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • Autosubmit API Autosubmit API
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 28
    • Issues 28
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 2
    • Merge requests 2
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Earth SciencesEarth Sciences
  • Autosubmit APIAutosubmit API
  • Issues
  • #93
Closed
Open
Issue created Oct 07, 2024 by Luiggi Tenorio Ku@ltenorioOwner

FastAPI migration

FastAPI seems to be a good framework for developing the API for multiple reasons:

  • Autogenerate OpenAPI documentation
  • Integrated request and response data validations
  • Async programming support that will increase the performance of some endpoints
  • Allows mounting our Flask app inside the main app to progressively migrate

It will be nice to see how good it is and evaluate that this transition is worth it

The proposed plan (for a first phase) should be:

  • Use FastAPI as the main app and mount the Flask app inside
  • Adapt the middleware built for Flask
    • Logging
    • Error handling
    • Authentication
  • Migrate v4 endpoints
  • Migrate endpoints tests
  • Define the Request and Response models

Phase 2:

  • Migrate v3 endpoints
  • Migrate bg tasks
  • Remove Flask
Edited Oct 24, 2024 by Luiggi Tenorio Ku
Assignee
Assign to
Time tracking