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 <[email protected]> 于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" <[email protected]> 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 > > > > > > > >
