Giter Site home page Giter Site logo

Comments (16)

kerf007 avatar kerf007 commented on May 5, 2024 2

I have similar issue. I'm as grpc client have to add jwt token to each request to grpc server and I don't understand how to do it. Help please :)

from docs.nestjs.com.

sjkummer avatar sjkummer commented on May 5, 2024 1

@Joshgallagher I'll recommend to have a look at https://github.com/stephenh/ts-proto and use their NestJS support: https://github.com/stephenh/ts-proto/blob/master/NESTJS.markdown

You'll get all the messages and gRPC call stups generated - including metadata option.

from docs.nestjs.com.

kwado-tech avatar kwado-tech commented on May 5, 2024 1

This doc illustrates the use of ts-proto package to generate ts files from .proto schemas.

here is an example script to generate for user.proto schema

# nestJs - /gen-nestjs-proto.sh
generate_nestjs_proto_definitions() {
    # remove directory if exists
    rm -r ./src/proto/nestjs

    # make directory
    mkdir ./src/proto/nestjs

    # generate definitions
    protoc --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_opt=addGrpcMetadata=true --ts_proto_opt=nestJs=true --ts_proto_out=./src/proto/nestjs ./src/proto/user.proto
}

from docs.nestjs.com.

dzzzzzy avatar dzzzzzy commented on May 5, 2024

I have two application, the one is an graphql api application for frontend, the other is a microservice using grpc.

How can I pass the request instance to the rpc call, because I want to use it to show these request trace.

Or is there any way to trace the whole req/res chain?

@kamilmysliwiec Hello kamil, is there any solution for my issue? I am waitting for your reply, thanks a lot!

from docs.nestjs.com.

woodcockjosh avatar woodcockjosh commented on May 5, 2024

@kamilmysliwiec Is this related to this nestjs/nest#747? Will this issue resolve the need to have an example with a separated client and server instead of some hybrid thingy which calls itself?

from docs.nestjs.com.

josh9060 avatar josh9060 commented on May 5, 2024

Is metadata implemented in nest? Or is it a feature to be added?

If it is implemented, is there any docs on how to use it within nest?

from docs.nestjs.com.

kamilmysliwiec avatar kamilmysliwiec commented on May 5, 2024

@Joshgallagher it's implemented. There are no docs yet though :(

from docs.nestjs.com.

josh9060 avatar josh9060 commented on May 5, 2024

@kamilmysliwiec can you point me in the direction of a resource or some sort of rough implementation?

I can make a PR to examples with an example using metadata.

from docs.nestjs.com.

josh9060 avatar josh9060 commented on May 5, 2024

Also, to clarify:

  1. Can we create metadata from a client and send it to the gRPC service?
  2. Can we create metadata from the gRPC service itself, for use on the client?

from docs.nestjs.com.

josh9060 avatar josh9060 commented on May 5, 2024

@kamilmysliwiec Any updates? I'm using MaliJS until metadata is documented in Nest.

from docs.nestjs.com.

Davide-Gheri avatar Davide-Gheri commented on May 5, 2024

@Joshgallagher To pass metadata from client to service I found that you need to pass a grpc.Metadata instance as second parameter to the client service call, it doesn't work with plain objects.

const meta = new grpc.Metadata();
meta.set('context', JSON.stringify(ctx));
this.client.getService('SomeService').someMethod(payload, meta);

it seems that the opposite (meta from service to client) is not supported
https://github.com/nestjs/nest/blob/master/packages/microservices/server/server-grpc.ts#L210
I think this is a grpc.sendUnaryData callback that accepts a grpc.Metadata instance as third argument

from docs.nestjs.com.

sjkummer avatar sjkummer commented on May 5, 2024

I have a nestjs instance acting as GRPC-Client sending metadata to another nestjs instance that is acting as a GRPC-Server as you described.
But: Seems like the metadata got lost or overwritten somehow.

Edit:
The example above works for me too. Just make sure to use the official grpc.Metadata from https://www.npmjs.com/package/grpc and not accidentally import it from another package.

from docs.nestjs.com.

guyisra avatar guyisra commented on May 5, 2024

Is there an update or a roadmap on this (adding metadata on the service)?

from docs.nestjs.com.

josh9060 avatar josh9060 commented on May 5, 2024

@kamilmysliwiec Is there any update on the docs providing information on gRPC (nest) microservices returning Metadata?

from docs.nestjs.com.

josh9060 avatar josh9060 commented on May 5, 2024

@sjkummer from my quick glimpse at that package is doesn't add support for gRPC metadata from the server. Correct me if I am wrong though.

from docs.nestjs.com.

sjkummer avatar sjkummer commented on May 5, 2024

@Joshgallagher Nestjs already supports gRPC metadata - it's just not well documented, how to declare the methods. You can use generated stubs from ts-proto or write your own declarations by following https://docs.nestjs.com/microservices/grpc

from docs.nestjs.com.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.