Instanciating Client#
Now that the client has been configured, it can be used in views to do http sub queries.
Follow the example below to instanciate the client.
Async#
In an async view, the blacksmith client
from django.http import HttpRequest, HttpResponse
from dj_blacksmith import AsyncDjBlacksmithClient
async def hello_blacksmith(request: HttpRequest) -> HttpResponse:
# Use a client
dj_cli = AsyncDjBlacksmithClient(request)
cli = await dj_cli("default") # build the configured "default" client.
api = await cli("api") # resolve an endpoint to access to service "api".
item = await api.foo.get({"id": 42}) # retrieve the item 42 from foo resources.
return HttpResponse("Hello world", content_type="text/plain")
Sync#
In an synchronous view, the blacksmith client
from django.http import HttpRequest, HttpResponse
from dj_blacksmith import SyncDjBlacksmithClient
def hello_blacksmith(request: HttpRequest) -> HttpResponse:
# Use a client
dj_cli = SyncDjBlacksmithClient(request)
cli = dj_cli("default") # build the configured "default" client.
api = cli("api") # resolve an endpoint to access to service "api".
item = api.foo.get({"id": 42}) # retrieve the item 42 from foo resources.
return HttpResponse("Hello world", content_type="text/plain")