I've borrowed ideas from the original API Star (https://github.com/encode/apistar) (before it was an OpenAPI toolkit) and FastAPI (https://fastapi.tiangolo.com/). Instagram engineering also had a recent blog post about how they do something similar with Django views (https://instagram-engineering.com/types-for-python-http-apis...).
Aside: If this is appealing to you (automated typing in REST) I think you would love GraphQL.
Typing is baked into graphql (https://graphql.org/learn/schema/#type-system). You can do it with graphene (https://graphene-python.org/) and django's graphene-djanago (https://github.com/graphql-python/graphene-django) which handles ORM wrapping and a view baseclass.
Having experience with it, one major downside is how exception handling works in graphene. There is a strange implementation of promises which doesn't translate well into python IMO. It ends up hijacking error resolution, making it hard to control execution.
On the other hand, being able to get instant documentation from graphql is a big benefit. Everything generates nicely to a schema.graphql file.
Instead of POST and PUT, graphql has a concept of mutations: https://graphql.org/learn/queries/, GET would be a query.
Also, graphql has built-in pagination via Connections: https://graphql.org/learn/pagination/
I still use REST in many places, but graphql has been one thing where the learning curve paid off. I wish REST had typing baked into it from the beginning.
Also relying on Marshmallow but with the extra bonus of generating an openapi spec for you and hosting swagger ui.
It puzzles me that such approach is not the norm. Interesting to see more people tackling the same problem.