This is a simple yet extensible API framework for Django that you can create API endpoints Django way.
Check out Documentation for more info.
Maintaining an open-source project requires attention and time. If you like this project and want it to be developed further, you might want to consider giving me a support.
If you are using ArcStack API in your project, please give me your feedback at me@gokhan.tr.
pip install arcstack-django-apiArcStack Django API comes with CommonMiddleware enabled. This middleware can convert your endpoint results to HttpResponse, handle exceptions and check for logged in users.
Usage with class-based views:
from arcstack_api import Endpoint, APIError class StatusOk(Endpoint): # By default all defined enpoints do not require logged in user # You can change this behavior with this class constant. LOGIN_REQUIRED = True def get(self, request, a: str | None = None): if a == "something_invalid": # This `dict` will be converted to `JSON` and `HttpResponse` # will be generated raise APIError( {"error": "you have passed invalid argument"} # The default status_code is `400` but it can be changed to # anything you want. status_code=480 ) # ArcStack API will serialize this to JSON and generate # a `HttpResponse` for you. return {"status": "OK"}Usage with function views:
from arcstack_api import api_endpoint, Endpoint, APIError @api_endpoint(login_required=True) def statusOk(request, a: str | None = None): if a == "something_invalid": raise APIError( {"error": "you have passed invalid argument"} status_code=480 ) return {"status": "OK"}In urls.py
from django.urls import path from . import endpoints urlpatterns = [ # For class-based views: path("api", endpoints.StatusOk.as_endpoint()), # For function views: path("api", endpoints.statusOk), ]