Fokko opened a new pull request, #5233:
URL: https://github.com/apache/iceberg/pull/5233

   While generating Python code from the open-api spec to bootstrap the Python 
rest catalog implementation I noticed that the URLs were constructed 
differently than expected.
   
   For our service the warehouse uuid is encoded as part of the path:
   ```
   
https://api.iceberg.io/ws/v1/oss/warehouses/8bcb0838-50fc-472d-9ddb-8feb89ef5f1e/namespaces
   ```
   
   However, the open-api spec states that the `/v1/` comes after the base path:
   ```
   /v1/namespaces/{namespace}/properties:
   ```
   This would lead to:
   ```
   
https://api.iceberg.io/ws/oss/warehouses/8bcb0838-50fc-472d-9ddb-8feb89ef5f1e/v1/namespaces
   ```
   
   where the base path is part of the server's definition:
   ```yaml
   servers:
     - url: "{scheme}://{host}/{basePath}"
       description: Server URL when the port can be inferred from the scheme
       variables:
         scheme:
           description: The scheme of the URI, either http or https.
           default: https
         host:
           description: The host address for the specified server
           default: localhost
         basePath:
           description: Optional prefix to be appended to all routes
           default: ""
   ```
   This will never allow us to construct an url with a prefix (the warehouse 
identifier). Therefore I suggest adding the prefix for the metadata-related 
endpoints (all except token and config). This way we can add v2 endpoints in 
the future to the same spec, and we also keep backward compatibility (just 
leaving the prefix empty)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to