github fullstorydev/grpcui v1.0.0

latest releases: v1.4.1, v1.5.0, v1.4.0...
3 years ago

Version One!

This release marks grpcui reaching a stable state with fundamental features all working correctly.

Changes

There are numerous changes and fixes since the previous release, v0.2.1.

Web UI

These changes impact usage of both the command-line tool and the Go packages.

  • The web UI would reject values greater than 2^31 for uint32 and fixed32 field types, making it impossible to enter half of the valid values for these fields. This has been corrected.
  • A new Request Timeout field has been added to the bottom of the Request Form tab, allowing a deadline to be set for the invocation.
  • There were previously numerous issues in handling of data entered/pasted into the Raw Request (JSON) tab. All of them have been corrected:
    • The UI was strictly requiring strings for 64-bit integers, but the JSON mapping states that numbers are accepted, too. So now one can enter a JSON blob that uses numbers, and they are handled correctly.
    • This UI was requiring that enum values always use the value names. However, the JSON mapping states that the numeric value is also acceptable. So now one can enter a JSON blob in that uses enum value numbers, and they are handled correctly.
    • Field names in the JSON blob were generally handled incorrectly. The logic was always requiring JSON keys to match the protobuf field name. However the JSON mapping states that the name is converted to camel-case and that the json_name field option can override this to a custom JSON key. So now the JSON keys can refer to the correct JSON field names and be successfully processed. Instead of requiring the protobuf field name, it only accepts protobuf field names as a last resort (if a given JSON key does not match the camel-case version of a field name or a json_name option).

Command-line tool

  • If the process's stdin is a terminal, then the program assumes the user is running the tool interactively, so an attempt will be made to automatically open a browser window pointed at the UI. This can be overridden via a new -open-browser flag.

Go package "github.com/fullstorydev/grpcui"

  • The AllFilesViaReflection and AllMethodsViaReflection functions have been updated to accept a grpc.ClientConnInterface argument, instead of a *grpc.ClientConn. This makes them more flexible as any concrete type can be used that implements the correct interface. This change to the API should be backwards-compatible at the source level.

Go package "github.com/fullstorydev/grpcui/standalone"

  • The HandlerViaReflection function has been updated to accept a grpc.ClientConnInterface argument, instead of a *grpc.ClientConn. This makes it more flexible as any concrete type can be used that implements the correct interface. This change to the API should be backwards-compatible at the source level.
  • The CSS, JS, and the actual HTML code served by the standalone handler can all now be overridden/augmented, to provide more customization to embedded UIs. Previously, using custom CSS, JS, or HTML required falling back to the low-level primitives in the github.com/fullstorydev/grpcui package. But now they can be supplied as options to standalone.Handler to create a single, fully-self-contained handler which serves customized content.

Don't miss a new grpcui release

NewReleases is sending notifications on new releases.