News for hackers. Stuff that matters.
Re:FastAPI framework, high perf, easy to learn, fast to code... by eddsalkield on Monday February 01, 2021 @01:48PM (#25991932)
I've been using FastAPI for a while, and think that the API-driven approach that it endorses is a good paradigm for building web applications.

Since the design of FastAPI programs is often modular, with libraries and modules extending the API with additional routes, it seems to make sense to build front-end components according to the same module structure. I'm yet to see any of these for popular libraries, but I'd be up for helping build some in libraries like Vue.

Does anyone know of existing projects/server frameworks where backend modules are coupled with front-end components that consume their API?

Re:FastAPI framework, high perf, easy to learn, fast to code... by tiangolo on Monday February 01, 2021 @02:27PM (#25992551)
I'm glad you're liking FastAPI!

You could check the official project generator, it includes a simple Vue.js front end: https://github.com/tiangolo/full-stack-fastapi-postgresql

Although I'm currently using React with TypeScript and hooks, and it's a great development experience. I plan on adding it to the project generator later.

Re:FastAPI framework, high perf, easy to learn, fast to code... by eddsalkield on Monday February 01, 2021 @02:58PM (#25992947)
Thanks, that's a really helpful example.

Where I think this could be taken to the next level of reusability is in modularising the front-end into API-specific components. For example, the login behaviour could depend on FastAPI-Users, with a sibling frontend library containing components that implement the same login flow. Adding user behaviour is then a matter of using the same third-party library on the front and back end.

This approach could be extended to other components such as an admin panel (perhaps using https://github.com/awtkns/fastapi-crudrouter), or a blogging component.

Re:FastAPI framework, high perf, easy to learn, fast to code... by tiangolo on Monday February 01, 2021 @03:06PM (#25993072)
Actually I also have plans to work on a generic admin UI based on OpenAPI, so it would be independent of any DB or ORM, just based on the defined Pydantic models.

But that's also gonna be for whenever I get the time to invest in it :)