Giter Club home page Giter Club logo

Comments (12)

fenos avatar fenos commented on June 2, 2024 21

Cool! I'm convinced with this.
I'll be definitely planning to support Reflection in the editor

from bloomrpc.

simplesteph avatar simplesteph commented on June 2, 2024 12

@fenos gRPC reflection is absolutely used, especially when actively developing an API. Imagine how much time will be saved if I don't have to re-load a changed proto file into this tool (even though there's an easy reload button) for each little API change we're making. To me this is a must :)

from bloomrpc.

RXminuS avatar RXminuS commented on June 2, 2024 3

It's the main reason we picked grpcui (which is an extension to grpcurl) and retrofitted the reflection API to all our services. Reason being that we have multiple versions in production and it's a pain to have to figure out what proto they are using

from bloomrpc.

simplesteph avatar simplesteph commented on June 2, 2024 3

@fenos when using evans, I just restart evans and I know I'll have the latest changes. Polling could be an option, or just a "refresh", or call the reflection service before every API call and comparing MD5 ?

from bloomrpc.

mihalios avatar mihalios commented on June 2, 2024 1

@fenos A simple restart of your grpc UI would suffice, polling would be great but not essential.

Has there been any more thought in supporting reflection since it was last discussed here?

from bloomrpc.

fenos avatar fenos commented on June 2, 2024

Thanks for your comment,

I think there are very few use cases where the server exposes the Reflection API.
Most of the time the third party provider would always provide the .proto file descriptor to make the integration less a black box.

If you can reverse engineer a GRPC endpoint which exposes the Reflection API, would it be possible to create a .proto file from the reflected metadata and then use it in the bloomrpc client?

from bloomrpc.

sercand avatar sercand commented on June 2, 2024

@fenos Please have a look at https://github.com/fullstorydev/grpcurl#server-reflection which supports server reflection API.

from bloomrpc.

iszak avatar iszak commented on June 2, 2024

I am not sure how wide spread the usage of the Reflection API is, I personally expose it. I think it's a good exploration mechanism in either case.

I believe you can reverse engineer a GRPC endpoint which exposes the Reflection API and create a .proto. Unfortunately the tooling I use (grpc_cli) doesn't appear to support creating a .proto. If it did, or there was a tool that does it could be a good stop-gap solution in the interim.

from bloomrpc.

fenos avatar fenos commented on June 2, 2024

@simplesteph Imagine you are developing an API, you are changing the server which either updates or removes 1 field from the request message, or to any message type / service definition.

How can the editor know about that change if the server doesn't tell that to the client?
Polling maybe? ๐Ÿ˜„

I think you still have the same problem with reflection or am i missing something?

from bloomrpc.

ConstantinLEW avatar ConstantinLEW commented on June 2, 2024

๐Ÿ‘€

from bloomrpc.

shooshx avatar shooshx commented on June 2, 2024

๐Ÿ‘€

from bloomrpc.

lucasoares avatar lucasoares commented on June 2, 2024

Hello guys.

I saw the PR was merged and I tested it.

If the connection is not successful all imported protos will disappear. Maybe you should look into it.

from bloomrpc.

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.