Hey folks,

I’d like to propose adding status code 200 as a valid response for HEAD
requests in the Catalog REST API. Currently, the following HEAD requests
return status code 204 for a successful response:
* namespaceExists
<https://github.com/apache/iceberg/blob/540d6a6251e31b232fe6ed2413680621454d107a/open-api/rest-catalog-open-api.yaml#L372-L402>
* tableExists
<https://github.com/apache/iceberg/blob/540d6a6251e31b232fe6ed2413680621454d107a/open-api/rest-catalog-open-api.yaml#L1129-L1160>
* viewExists
<https://github.com/apache/iceberg/blob/540d6a6251e31b232fe6ed2413680621454d107a/open-api/rest-catalog-open-api.yaml#L1691-L1712>

In PyIceberg, support for status code 200 has already been implemented for
table_exists
<https://github.com/apache/iceberg-python/pull/1389/files#diff-3bda7391ebd8aa3dcfd6703d8d2764830b9d9c35fa854188a37d69611274bd3dR890>
 and namespace_exists
<https://github.com/apache/iceberg-python/pull/1434/files#diff-3bda7391ebd8aa3dcfd6703d8d2764830b9d9c35fa854188a37d69611274bd3dR882>.
The motivation for this change is to enable more intuitive and
user-friendly integrations with catalogs, as Fokko highlighted here
<https://github.com/apache/iceberg-python/issues/1363#issuecomment-2497462825>.
Standardizing this behavior in the Catalog REST spec would promote
consistency across implementations and make interactions easier for users
and client developers.

Would love to hear your thoughts on this proposal!

Best,
Kevin Liu

Reply via email to