Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: corrects operationIds in ewm service specs #2

Open
ivoylov opened this issue Oct 16, 2023 · 0 comments
Open

refactor: corrects operationIds in ewm service specs #2

ivoylov opened this issue Oct 16, 2023 · 0 comments

Comments

@ivoylov
Copy link
Owner

ivoylov commented Oct 16, 2023

Prerequisite: It is highly recommended to merge yandex-praktikum/java-explore-with-me#22 changes, since generation via swagger-codegen-maven-plugin does not work correctly for original ewm-main-service-spec.json file.

In case of code generation via swagger-codegen-maven-plugin there are several problems with operationIds provided in ewm-main-service-spec.json file (see demo pom.xml in terekhovmv/java-explore-with-me-fixes@da018e0).

  1. Some of operationIds contain numeric suffixes, and this suffixes appear in methods of generated *Api interfaces (getEvents_2, getEvent_1). Solution: remove suffixes at least.
  2. There is no consistency in naming (delete / deleteCompilation, registerUser / addEvent / saveCompilation). Solution: provide consistent naming.
  3. Since *Api interfaces are generated for top level endpoint components (/users/* => UsersApi) there are problems with identifying endpoint methods for different roles (e.g. cancelRequest and changeRequestStatus in the UsersApi interface). Solution: put the role as prefix in operationIds.
  4. Since operationIds must be unique among all operations described in your API (see https://swagger.io/docs/specification/paths-and-operations/), we should provide enough global descriptive names (delete or getEvent_1 does not work).

Tabular view of changes proposed in this PR:

Method Original operationId Recommended operationId
PUBLIC
GET /categories getCategories getCategories (no changes)
GET /categories/{catId} getCategory getCategory (no changes)
GET /compilations getCompilations getCompilations (no changes)
GET /compilations/{compId} getCompilation getCompilation (no changes)
GET /events getEvents_1 findEvents
GET /events/{id} getEvent_1 getEvent
ADMIN
GET /admin/users getUsers adminGetUsers
POST /admin/users registerUser adminAddUser
DELETE /admin/users/{userId} delete adminRemoveUser
POST /admin/categories addCategory adminAddCategory
DELETE /admin/categories/{catId} deleteCategory adminRemoveCategory
PATCH /admin/categories/{catId} updateCategory adminUpdateCategory
GET /admin/events getEvents_2 adminFindEvents
PATCH /admin/events/{eventId} updateEvent_1 adminUpdateEvent
POST /admin/compilations saveCompilation adminAddCompilation
DELETE /admin/compilations/{compId} deleteCompilation adminRemoveCompilation
PATCH /admin/compilations/{compId} updateCompilation adminUpdateCompilation
INITIATOR
GET /users/{userId}/events getEvents initiatorGetEvents
GET /users/{userId}/events/{eventId} getEvents initiatorGetEvent
POST /users/{userId}/events addEvent initiatorAddEvent
PATCH /users/{userId}/events/{eventId} updateEvent initiatorUpdateEvent
GET /users/{userId}/events/{eventId}/requests getEventParticipants initiatorGetEventRequests
PATCH /users/{userId}/events/{eventId}/requests changeRequestStatus initiatorChangeRequestStatus
PARTICIPANT
GET /users/{userId}/requests getUserRequests participantGetRequests
POST /users/{userId}/requests addParticipationRequest participantAddRequest
PATCH /users/{userId}/requests/{requestId}/cancel cancelRequest participantCancelRequest
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant