Skip to content

Quickstart

1) Install

pip install "django-grpc-extra[codegen]"

2) Add app

INSTALLED_APPS = [
    ...,
    "grpc_extra",
]

3) Init grpc layout

python -m django init_grpc --app products

4) Add service

from pydantic import BaseModel
from grpc_extra import grpc_method, grpc_service


class PingRequest(BaseModel):
    message: str


class PingResponse(BaseModel):
    message: str


@grpc_service(app_label="products", package="products")
class ExampleService:
    @grpc_method(request_schema=PingRequest, response_schema=PingResponse)
    def ping(self, request, context):
        return {"message": f"pong: {request.message}"}

5) Generate proto/pb2

python -m django generate_proto --app products

6) Run server

python manage.py run_grpcserver --health --reflection

7) Invoke

Use grpcurl/Postman/BloomRPC and call:

  • service: ExampleService
  • method: Ping

Payload example:

{"message": "hello"}