I'm on board for this proposal. I was in the off-mail chats and I think
this is probably our simplest approach going forward.

On Thu, Aug 15, 2024 at 10:39 AM Dmitri Bourlatchkov
<dmitri.bourlatch...@dremio.com.invalid> wrote:

> OpenAPI tool will WARN a lot if Operation IDs overlap. Generated code/html
> may also look odd in case of overlaps.
>
> All-in-all, I think the best practice is to define unique Operation IDs up
> front.
>
> For Iceberg REST API, the yaml file is the API definition, so it should
> not be a problem to ensure that Operation IDs are unique, I guess.
>
> Cheers,
> Dmitri.
>
> On Thu, Aug 15, 2024 at 11:32 AM Eduard Tudenhöfner <
> etudenhoef...@apache.org> wrote:
>
>> Hey Jack,
>>
>> thanks for the feedback. I replied in the doc but I can reiterate my
>> answer here too: The *path* is unique and required so that feels more
>> appropriate than requiring to have an optional *operationId* in the
>> OpenAPI spec.
>> Additionally, using the path is more straight-forward when we introduce
>> v2 endpoints, while you would have to make sure that all *operationIds*
>> are unique across endpoints (and I'm not sure if OpenAPI tools actually
>> enforce uniqueness).
>>
>>
>>
>> On Thu, Aug 15, 2024 at 5:20 PM Jack Ye <yezhao...@gmail.com> wrote:
>>
>>> Hi Eduard,
>>>
>>> In general I agree with this proposal, thanks for putting this up! Just
>>> one question (which I also added in the design), what are the thoughts
>>> behind using "<HTTP VERB> <resource path from REST spec>", vs using the
>>> operationId defined in the OpenAPI?
>>>
>>> The operationId approach definitely looks much cleaner to me, but (1) in
>>> OpenAPI it is not a requirement to define it, and (2) right now there are
>>> some inconsistent operationIds, for example UpdateTable is the operationId,
>>> but CommitTable is used for all request and response models. But these are
>>> all pretty solvable issues because we can enforce operationId to be
>>> required in the Iceberg spec, and fix it to be consistent, assuming nobody
>>> is taking a dependency on these operationIds right now.
>>>
>>> Personally speaking, I am pretty neutral on this topic, but curious what
>>> everyone thinks.
>>>
>>> Best,
>>> Jack Ye
>>>
>>>
>>>
>>> On Wed, Aug 14, 2024 at 9:20 AM Eduard Tudenhöfner <
>>> etudenhoef...@apache.org> wrote:
>>>
>>>> Hey Dmitri,
>>>>
>>>> this proposal is the result of the community feedback from the
>>>> Capabilities proposal. Ultimately the capabilities turned out to entail
>>>> more complexity than necessary and so this proposal solves the core problem
>>>> while keeping complexity and spec changes to an absolute minimum.
>>>>
>>>> Eduard
>>>>
>>>> On Wed, Aug 14, 2024 at 5:15 PM Dmitri Bourlatchkov
>>>> <dmitri.bourlatch...@dremio.com.invalid> wrote:
>>>>
>>>>> Hi Eduard,
>>>>>
>>>>> How is this proposal related to the Server Capabilities discussion?
>>>>>
>>>>> Thanks,
>>>>> Dmitri.
>>>>>
>>>>> On Wed, Aug 14, 2024 at 5:14 AM Eduard Tudenhöfner <
>>>>> etudenhoef...@apache.org> wrote:
>>>>>
>>>>>> Hey everyone,
>>>>>>
>>>>>> I'd like to propose a way for REST servers to communicate to clients
>>>>>> what endpoints it supports via a new *endpoints* field in the
>>>>>> *CatalogConfig* of the *v1/config* endpoint.
>>>>>>
>>>>>> This enables clients to make better decisions and clearly signal that
>>>>>> a particular endpoint isn’t supported.
>>>>>>
>>>>>> I opened #10937 <https://github.com/apache/iceberg/issues/10937> to
>>>>>> track the proposal in GH. Please find the proposal doc here
>>>>>> <https://docs.google.com/document/d/1krcIaLfxtBFDABU5ssLmf64zyHgE8BRncpGPIMTWlxo/edit?usp=sharing>
>>>>>>  (estimated
>>>>>> read time: 5 minutes). The proposal requires a Spec change, which can be
>>>>>> seen in #10928 <https://github.com/apache/iceberg/pull/10928>.
>>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Eduard
>>>>>>
>>>>>

Reply via email to