Services¶
Django gRPC framework provides an Service
class, which is pretty much the
same as using a regular gRPC generated servicer interface. For example:
import grpc
from django_grpc_framework.services import Service
from blog.models import Post
from blog.serializers import PostProtoSerializer
class PostService(Service):
def get_object(self, pk):
try:
return Post.objects.get(pk=pk)
except Post.DoesNotExist:
self.context.abort(grpc.StatusCode.NOT_FOUND, 'Post:%s not found!' % pk)
def Retrieve(self, request, context):
post = self.get_object(request.id)
serializer = PostProtoSerializer(post)
return serializer.message
Service instance attributes¶
The following attributes are available in a service instance.
.request
- the gRPC request object.context
- thegrpc.ServicerContext
object.action
- the name of the current service method