Concept Flow - Namespace concept
Create Flask App
Define Namespace
Add Resources to Namespace
Register Namespace with API
Run App and Access Namespace Routes
This flow shows how a Flask app uses namespaces to organize API routes step-by-step.
from flask import Flask from flask_restx import Api, Namespace, Resource app = Flask(__name__) api = Api(app) ns = Namespace('books') @ns.route('/') class BookList(Resource): def get(self): return {'books': ['Book1', 'Book2']} api.add_namespace(ns) if __name__ == '__main__': app.run()
| Step | Action | Object Created/Modified | Effect/Output |
|---|---|---|---|
| 1 | Create Flask app instance | app (Flask object) | App ready to register routes |
| 2 | Create Api object with app | api (Api object) | API manager linked to app |
| 3 | Define Namespace 'books' | ns (Namespace object) | Namespace groups related routes |
| 4 | Define Resource class BookList with GET method | BookList (Resource class) | Handles GET requests at namespace root |
| 5 | Add route '/' to Namespace ns | Route '/' under 'books' namespace | Route ready to handle requests |
| 6 | Add Namespace ns to Api | api updated with 'books' namespace | Namespace routes registered in API |
| 7 | Run app | Flask server running | API accessible at /books/ endpoint |
| 8 | Client sends GET request to /books/ | Request handled by BookList.get | Returns {'books': ['Book1', 'Book2']} |
| 9 | Request completes | Response sent to client | Client receives list of books |
| 10 | App continues running | Server waits for new requests | App ready for more API calls |
| Variable | Start | After Step 2 | After Step 3 | After Step 6 | Final |
|---|---|---|---|---|---|
| app | None | Flask instance created | Flask instance created | Flask instance created | Flask instance running |
| api | None | Api instance linked to app | Api instance linked to app | Api instance with 'books' namespace | Api instance running |
| ns | None | None | Namespace 'books' created | Namespace registered in api | Namespace active |
| BookList | None | None | None | Resource class registered | Resource ready to handle requests |
Flask Namespace groups related API routes.
Create Namespace with Namespace('name').
Add Resource classes with @ns.route.
Register Namespace with api.add_namespace(ns).
Routes become /namespace/route.
Helps organize and scale APIs.