jackye1995 commented on code in PR #9940: URL: https://github.com/apache/iceberg/pull/9940#discussion_r1664416515
########## open-api/rest-catalog-open-api.yaml: ########## @@ -28,6 +28,10 @@ info: description: Defines the specification for the first version of the REST Catalog API. Implementations should ideally support both Iceberg table specs v1 and v2, with priority given to v2. + + This API uses capability tags to describe optional functionality. + In order to support a particular capability, a server is required to implement all endpoints grouped under a particular tag. Review Comment: I think this is the sentence that I see a problem, because a server implementing `tables` might only implement read APIs. We can maybe discuss if we should separate those into `table-read`, `table-management`, `table-registration`, etc. and do similar to views. But even for that, for example in `table-management`, `RenameTable` might be something that is difficult to do atomically and servers choose to not do that. So "required" still seems wrong. When you say "required to implement", do you consider "always throw 403 or 501" a way to implement the API? If the answer is yes, let's make it clear here. If we divide features into reasonably small chunks, and require the server to at least fail the operation properly when they declare they have the capability, it seems like a good balance to me. -- 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: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org