Open davidawad opened 1 year ago
I believe this happens because there is no "default" way to pass an array of values as a query parameter. It might work for tRPC, but there's no easy widely adopted method of passing arrays as a query parameter and most implementations are framework specific. Which one of the following endpoints should even be generated?
?cars[]=Saab&cars[]=Audi
?cars=Saab&cars=Audi
?cars=Saab,Audi
I suggest using a POST request instead and passing everything in the body. Alternatively, you can make "labels" into a string, and parse it manually (using the format you chose) inside the procedure. But that's a bit weird IMO.
I've also been unable to use arrays in inputs for PUT. See #255
+1
I'm building a pagination router with the above schema but also facing the same ordeal. Hope this get fixed soon :(
I'm building a pagination router with the above schema but also facing the same ordeal. Hope this get fixed soon :(
Or maybe just comment the .meta() method and move on.
@Pridestalkerr
I suggest using a POST request instead and passing everything in the body. Alternatively, you can make "labels" into a string, and parse it manually (using the format you chose) inside the procedure. But that's a bit weird IMO.
It kind of defeats the purpose of generating the openapi spec, doesn't it? If the document generated is not representing what is expected by the implementing code, what is it good for then?
@Pridestalkerr
I suggest using a POST request instead and passing everything in the body. Alternatively, you can make "labels" into a string, and parse it manually (using the format you chose) inside the procedure. But that's a bit weird IMO.
It kind of defeats the purpose of generating the openapi spec, doesn't it? If the document generated is not representing what is expected by the implementing code, what is it good for then?
@renke0 some clarifications.
Most REST specs do not support arrays in query parameters.
How would you even represent it? /your/get/endpoint?array=["v1", "v2"]
What if the array contains objects? Do you stringify them? At that point you probably just stringify the entire array. But then the query value of array
will be string.
I'm sure there's frameworks that can do this on the fly and convert any query values from json strings to objects, but not tRPC.
Hence my suggestion to pass it in the body instead. GET requests can have a body, but AFAIK the REST spec says thats a bad idea and the request should be a POST instead (not my opinion).
This library generates a REST spec, and thus assumes that GET requests only receive query parameters, no body.
Please, do take this with a grain of salt. It's just what i learned back when I encountered this issue myself. Best of luck!
heres' an example:
if I have this code defining a schema and try to make TRPC calls (on ANY API, not just this one), I'll get this error: