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")