Hi feiwang,

  Thanks for this proposal. I agree with the versioned REST APIs.

Thanks,
Ethan Feng


Ethan Feng <ethanf...@apache.org> 于2024年7月2日周二 17:58写道:
>
> Fei Wang <feiw...@apache.org> 于2024年7月2日周二 13:04写道:
>
> >
> > Hi Keyong,
> >
> > Thanks very much for your suggestions.
> >
> > I have renamed the docs to 'CIP-9 Celeborn RESTful API Refine' and will 
> > start a vote thread later.
> >
> > Thank you very much.
> >
> > Regards,
> > Fei Wang
> >
> > On 2024/07/02 04:17:34 Keyong Zhou wrote:
> > > Hi Fei,
> > >
> > > Sorry for the late reply, I reviewed the design doc and it looks good to 
> > > me
> > > :)
> > >
> > > In the doc you mentioned CIP-7 Celeborn CLI[1] that relies on the rest 
> > > API,
> > > since your design
> > > will reserve the current API, I think there will be no conflicts.
> > >
> > > I suggest to create a CIP for this proposal and starts a vote on it,
> > > like[2][3].
> > >
> > > Regards,
> > > Keyong Zhou
> > >
> > > [1] 
> > > https://cwiki.apache.org/confluence/display/CELEBORN/CIP-7+Celeborn+CLI
> > > [2] https://lists.apache.org/thread/xjh8z2kszq0kwj5bdz2bh3b1sotv593p
> > > [3] https://lists.apache.org/thread/bx58h25poypq0znolkb8vlhop4bw1x81
> > >
> > > Fei Wang <feiw...@apache.org> 于2024年7月2日周二 04:53写道:
> > >
> > > > Hi celeborn community,
> > > > I hope this message finds you well.
> > > >
> > > > I would like to extend my gratitude to those who have taken the time to
> > > > review and discuss for this proposal. Your insights and feedback are
> > > > invaluable to the progression of this project.
> > > >
> > > > As we have not received further discussions for some time, I believe it 
> > > > is
> > > > appropriate to move forward with the next step in the process.
> > > >
> > > > Best Regards,
> > > > Fei Wang
> > > >
> > > > On 2024/06/25 19:18:27 Fei Wang wrote:
> > > > > Hi,
> > > > >
> > > > > Thanks Nicholas for the comments.
> > > > >
> > > > > > 1. Could you summary all /api/v1 interfaces in Public Interfaces
> > > > section? Meanwhile, could you also the definition of the parameter and
> > > > return type class like the fields of POJO?
> > > > >
> > > > > I have updated the docs and complete the parameters and response POJO.
> > > > >
> > > > > > 2. Could some interfaces merged into one interface like
> > > > /${version}/workers/lost, /${version}/workers/excluded and
> > > > /${version}/workers/shutdown? Should the refined REST API be mapping to
> > > > origin interface one by one?
> > > > >
> > > > > Thanks we can merge these apis into `/${version}/workers`. The 
> > > > > response
> > > > POJO.
> > > > > Name                  Type
> > > > > workers               List[WorkerData]
> > > > > lostWorkers           List[WorkerData]
> > > > > excludedWorkers       List[WorkerData]
> > > > > shutdownWorkers       List[WorkerData]
> > > > > decommissionWorkers   List[WorkerData]
> > > > >
> > > > > And I will mapping the the api one by one.
> > > > >
> > > > >
> > > > > > 3. Could this migration plan describe more detail? For example, the
> > > > origin interfaces returns string, but the refined REST API returns the
> > > > POJO? How does the user migrate the REST API?
> > > > >
> > > > > The migration of a REST API primarily involves mapping the old API to
> > > > the new API. Previously, the old API returned a string, whereas the new 
> > > > API
> > > > returns a POJO (Plain Old Java Object) that includes all the fields
> > > > relevant to the content of the previous string response. Therefore, the
> > > > content of the new API's response is essentially consistent with the
> > > > previous response results.
> > > > > In the migration documentation, I will detail the API mappings as well
> > > > as the fields in the new response.
> > > > >
> > > > >
> > > > > > 4. Some interfaces like /${version}/exit do not mentation the HTTP
> > > > method? Could you check all the HTTP method of refined REST API? 
> > > > Meanwhile,
> > > > is there any standard or pattern of the naming for path? For example,
> > > > /${version}/workers/events not only list the event info for Get method, 
> > > > but
> > > > also supports sending event for POST method without operation name in 
> > > > path.
> > > > >
> > > > > Thanks for the reminder, I have added the method for params for all 
> > > > > the
> > > > APIs.
> > > > >
> > > > > Using different HTTP methods to correspond to different actions on the
> > > > same API endpoint is a common practice in RESTful design. This approach 
> > > > is
> > > > in line with the principles of REST, where the resource path remains
> > > > consistent while the HTTP method indicates the intended operation. And I
> > > > have observed a similar design pattern in Apache Kyuubi Project.
> > > > >
> > > > >
> > > > >
> > > > > > 5. /${version}/conf/dynamic uses three parameters without any POJO
> > > > parameter type class, but /${version}/workers/events uses
> > > > SendWorkerEventRequest as parameter type. Could this parameter type be
> > > > unified to POJO?
> > > > >
> > > > > The api `/${version}/conf/dynamic` method is GET, request parameters
> > > > should be fine.
> > > > >
> > > > >
> > > > > Thanks,
> > > > > Fei Wang
> > > > >
> > > > > On 2024/06/25 17:22:51 Nicholas wrote:
> > > > > >  Hi turboFei,
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > Thanks for driving the proposal of RESTful API Refine. I have some
> > > > questions about this proposal:
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > 1. Could you summary all /api/v1 interfaces in Public Interfaces
> > > > section? Meanwhile, could you also the definition of the parameter and
> > > > return type class like the fields of POJO?
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > 2. Could some interfaces merged into one interface like
> > > > /${version}/workers/lost, /${version}/workers/excluded and
> > > > /${version}/workers/shutdown? Should the refined REST API be mapping to
> > > > origin interface one by one?
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > 3. Could this migration plan describe more detail? For example, the
> > > > origin interfaces returns string, but the refined REST API returns the
> > > > POJO? How does the user migrate the REST API?
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > 4. Some interfaces like /${version}/exit do not mentation the HTTP
> > > > method? Could you check all the HTTP method of refined REST API? 
> > > > Meanwhile,
> > > > is there any standard or pattern of the naming for path? For example,
> > > > /${version}/workers/events not only list the event info for Get method, 
> > > > but
> > > > also supports sending event for POST method without operation name in 
> > > > path.
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > 5. /${version}/conf/dynamic uses three parameters without any POJO
> > > > parameter type class, but /${version}/workers/events uses
> > > > SendWorkerEventRequest as parameter type. Could this parameter type be
> > > > unified to POJO?
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > Regards,
> > > > > >
> > > > > > Nicholas Jiang
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > At 2024-06-26 00:35:11, "Fei Wang" <feiw...@apache.org> wrote:
> > > > > > >Hi all,
> > > > > > >
> > > > > > >I have written up a proposal about refining the current 
> > > > > > >Master/Worker
> > > > > > >RESTful API. You can find the proposal
> > > > > > >
> > > > https://docs.google.com/document/d/1LV2vV-w3XtlbJj2Vi4J77mt4IYCr40-8A_JncZLsHqs/edit?usp=sharing
> > > > > > ><
> > > > https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.google.com%2Fdocument%2Fd%2F1LV2vV-w3XtlbJj2Vi4J77mt4IYCr40-8A_JncZLsHqs%2Fedit%3Fusp%3Dsharing&data=05%7C02%7Cfwang12%40ebay.com%7C71f1561af7134f08cb1808dc94eda6d9%7C46326bff992841a0baca17c16c94ea99%7C0%7C0%7C638548995634818085%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=1gfkqj0ocuhnKb7c4%2FB0qvJu%2Fc5U1KDi6XS4UM64m%2B8%3D&reserved=0
> > > > >
> > > > > > > here.
> > > > > > >
> > > > > > >Please let me know if you have any comments or questions.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >TLDR by refining the RESTful API, it makes integration with 
> > > > > > >operations
> > > > > > >tools and Celeborn easy.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >FYI, I was not able to access the cwiki page to put this proposal
> > > > there,
> > > > > > >hope it is okay to just share as a google doc here for now.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >--
> > > > > > >
> > > > > > >Fei Wang
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >Celeborn RESTful API Refine Proposal
> > > > > > >
> > > > > > >
> > > > https://docs.google.com/document/d/1LV2vV-w3XtlbJj2Vi4J77mt4IYCr40-8A_JncZLsHqs/edit?usp=sharing
> > > > > > ><
> > > > https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.google.com%2Fdocument%2Fd%2F1LV2vV-w3XtlbJj2Vi4J77mt4IYCr40-8A_JncZLsHqs%2Fedit%3Fusp%3Dsharing&data=05%7C02%7Cfwang12%40ebay.com%7C71f1561af7134f08cb1808dc94eda6d9%7C46326bff992841a0baca17c16c94ea99%7C0%7C0%7C638548995634832996%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=eQA75vkDkYn2LRZxXygkNsAEbiwniT0mluZAog5JM7Q%3D&reserved=0
> > > > >
> > > > > >
> > > > >
> > > >
> > >

Reply via email to