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 to 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

Reply via email to