spluxx / protoman Goto Github PK
View Code? Open in Web Editor NEWPostman for protobuf APIs
License: MIT License
Postman for protobuf APIs
License: MIT License
I have a locationId
field in my proto which is a fixed64 type, and am trying to request location ID 1234577704719498930
The server is instead receiving a request for location ID 1234577704719499008
Having run into this with some web frontends, my best guess is that Protoman is using a javascript Number internally, which only supports 53 bits, so it's truncating the integer input. This can probably be fixed by using BigInt instead of Number.
Whether to support interface synchronization, multi-platform cloud support
Hope to support pre-script like postman, which can greatly improve the efficiency of the test, and the access_token can be automatically obtained in advance before the request is sent
Google well known type not found error:
https://github.com/googleapis/api-common-protos/blob/master/google/type/money.proto
Error: Protobuf cannot be read: Error: no such Type or Enum 'google.type.Money' in Type
Hello,
While I'm testing my application, I found out that the result is not shown in the response view because the type is not json but application/json;charset=utf-8
So created a patch that can fix it:
Index: src/core/http_client/client.ts
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/core/http_client/client.ts b/src/core/http_client/client.ts
--- a/src/core/http_client/client.ts (revision 521b4ac5069fb5d748edf2f373b6cd5f5bc5dceb)
+++ b/src/core/http_client/client.ts (date 1642675334155)
@@ -47,7 +47,7 @@
if (buf.length === 0) {
responseBodyType = 'empty';
responseBodyValue = undefined;
- } else if (saidContentType === CONTENT_TYPE_JSON) {
+ } else if (saidContentType?.includes(CONTENT_TYPE_JSON)) {
responseBodyType = 'json';
responseBodyValue = toJson(buf);
} else if (saidContentType?.includes(CONTENT_TYPE_HTML)) {
This will recognize CONTENT_TYPE_JSON
Our APIs are mixed, where we get authentication tokens using JSON, but then use those authentication tokens with Protobuf APIs. Would be nice to able to do both in this application.
It would be nice to have a separate table for query params
Suggested by @DoneSpeak #13
In some projects, the protobuf files are separated into various folders - an example project structure would be
-- service1
|- service1.proto (imports models)
-- service2
|- service2.proto (imports models / service1)
-- core
|- models.proto
--
Although the proto_path
feature introduced in v0.3.2 makes it possible to build these files together, an easy way to import all .proto files in a folder is yet to be delivered.
My take on this problem is to allow selection of the root directory, which
It might even make sense to enforce this to be the only way to import the .proto files, and make the proto_path implicit rather than having the users pick the files one by one and type the proto_path in. But I'll have to dig into the protoc
docs and make sure this doesn't block certain project structures.
Different excepted message for different status or at least success status message and error status message
Super excited to try this. Would love to easily be able to duplicate a request since a lot of my APIs look similar.
Hi,
It would be nice if you can add support for protobuf message type Any. For example, I could send my protobuf message type 'Foo' in a request that takes a message of type Any.
Regards,
Irfan
The views/models for configuring environments are ready, but we haven't done 2 things, so the feature is currently disabled (in the top right corner)
As in, if the current environment has
hostname: 'localhost:3000'
and the url string is {{hostname}}/api/do_something
, the request should be sent to localhost:3000/api/do_something
. The replacement logic should be applied to every single strings where possible - url, headers, message values.
After this is done, this feature would be enabled
This would mean that we'd have to create our own Input component that fits well with ant design's theme, so a bit more work is expected than the first one.
Protoman does not support data types check.
when I pass string where int is required, it should throw an error, but this does not happen right now.
trying to POST http://localhost:5000/etc it says Protocol "http:" not supported. Expected "https:"
based on the examples it seems like it should work. Any clues what it might be?
Hi!
I don't know if this is implemented or not, but it would be super useful if we would send the HTTP request body as JSON. Today, only Protobuf is an alternative for sending requests and JSON is a good alternative for sending request as there are short and simple.
Thanks,
Once the user defines(and saves) the collection, user can just click a button to test all the requests within that collection at once.
Further discussion needed whether protoman will just check the status code or the actual return(users can decide if they want to)
Possibility to send form-data like in Postman, not only proto. With 2 types of fields - text and file.
Hello, I am returning a content-type application/x-protobuf
but getting content-type is unsupported. Which content-type does Protoman expect? The Request correctly serializes the protobuffer from the managed collection.
Thanks
The http client implementation that we're using is node-fetch.
A good start for this feature would be to
We can start with simple ones available from node-fetch:
I faced this issue but I have checked I have the certificate of the page.
How can I fix this problem?
In 0.4.0 windos
Nice to have: create folders for requests in collections like in Postman
hi , i run yarn dev , but dont open nothing , and localhost:3000 is a blank page
where can I test?
I am trying to do a POST on an HTTPS address but getting the following error whereas the certificate has been imported into the ca-trusts as well in the browser.
failed, reason: self signed certificate in certificate chain
Kindly let me know if there is way to bypass certificate validation or where to import the certificate to resolve the issue.
Operating system: CentOS 7
It would be great if I could clone request,
Won't need to write all headers every request and work would be much faster.
Prometheus uses Snappy encoded Protobuf over HTTP. I wanted to use Protoman to test some functionality with the remote write api in prometheus, but it expects snappy encoded protobuffers and sends back snappy encoded (content-encoding) protobuffers.
there are a few snappy javascript libraries to choose from
Problem
Cannot submit my request due to blank UI
Steps:
Expected Output
GUI is still visible, can edit values and send request
I have noticed the request is working fine if we refresh it first then submit it, though this is another issue you need to fix. :)
For now when I export a collection, paths to proto files most probably will not work on other machines as its are absolute paths on a machine where I create them.
For example:
"protoFilepaths": [
"<absolute_path>"
],
I would like to not rely on local path and possible solutions I see for that:
http
On top of that I can suggest attacking the problem from a different point:
Now I need to export all files one by one but probably it makes sense to export the whole directory and Protoman can recursively find all proto definition. In that case other people can (only once) just point to the directory with definitions and other future changes will not require from them to export new files.
Or instead of directory maybe it's possible to add a jar dependency
Protocol "http:" not supported. Expected "https:"
Please support "http".
Let's say we have the following schema:
message UpdatePostPayload {
optional string title = 1;
optional string content = 2;
optional string cover = 3;
}
The request message form will include this fields and when it's sent and parsed on the server this fields will exists with default empty values (empty strings in this example). It would be nice to be able to have checkbox or someting to specify which optional fields should be used or not. So when optional field doesn't have any value and it's unchecked (i.e. "don't use this field") - we will not get this empty values on the server.
Hi!
After resizing as desired but when closing the application and restarting, the window size is back to the same.
I need save size windows when turn off
My OS: Ubuntu Desktop 20.04
thanks
Suggested by @DoneSpeak #13
Errors like index out of range: 128 + 10 > 128
is somewhat cryptic, but it seems like the main library considers it sufficient. protobufjs/protobuf.js#691 (comment)
In a high-level view, the protobuf-related logic consists of 4 components.
1 and 2 are done through protobufjs, so I think we can just build a lightweight module that takes in a protobufjs error and returns a more friendly error.
3, if it fails for some unexpected reason, we should still display the object rather than just giving up, so that the users can debug the issue.
for some URL's in postman tool, it ask for allow the request...which is not available in Protoman..
how to fix it.
reason: unable to verify the first certificate
One of the apis (that requires protobuf encoded payload over http) I'm testing accepts content-type as ONLY binary/octet-stream
.
Hence I'm passing the header from protoman like this:
But when I make the request, the service is receiving content-type as binary/octet-stream,application/x-protobuf
. I guess that means Protoman is attaching application/x-protobuf
in the header. Due to this, the api call fails.
Can this implicit passing of application/x-protobuf
be removed or made optional?
Need possibility to reorder request in collection or at least requests should be sorted by name.
The enum type under proto3 will report an error.
Error: Error while parsing the JSON representation of the protobuf message:
Expected 'number', but got 'string'
I am sending requests using a protobuf message which has a field with type bytes
- specifically image bytes. I convert the image to bytes using a Python script and get the following output:
\xff\xd8\xff\xe0\x00\x10JFIF[...]
This, I then input to the bytes field in Protoman:
I would expect that exactly the same \xff\xd8\xff\xe0\x00\x10JFIF
is transferred to the server, but what I get at the server side is:
\xc5\xf7\xf1w\xcc_\x7f\x17\xb4\xc7M1\xd7BE
I assume this has to do with the representation the data is in, I am inputting a byte string. What does the byte
type actually expect?
Protoman-0.3.1.dmg
Failed when I try to add the following protos.
account/api/account_test.proto -> Protobuf cannot be read
syntax = "proto3";
import "account/data/account.proto";
message AccountList {
repeated account.data.Account accounts = 1;
}
account/data/account.proto -> Added successfully.
syntax = "proto3";
package account.data;
import "common/valid.proto";
message Account {
int64 account_id = 1;
string first_name = 2 [(valid.pattern) = "[a-zA-Z]{5,20}"];
string last_name = 3 [(valid.pattern) = "[a-zA-Z]{5,20}"];
string email = 4 [(valid.email) = true];
string phone = 5 [(valid.pattern) = "[a-zA-Z]{5,20}"];
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.