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

Въпрос относно избора на entity за RestController #42

Closed
SavinaDzhenimova opened this issue Jul 16, 2024 · 6 comments

Comments

@SavinaDzhenimova
Copy link

Линк към github проекта ми: https://github.com/SavinaDzhenimova/HomeDeliveryApp

Здравей! Относно RestController-а реших да изнеса entity-то Restaurant в отделен проект и за него да взимам информацията, но искам да попитам дали е удачен избор понеже ресторантите в проекта ми са 3, които се записват в базата чрез RestaurantsInit класа. Създала съм repository, service и controller за това entity, но контролерът няма PostMapping и DeleteMapping, а само GetMapping. В изискванията за проекта не е споменато, че RestController-а трябва да съдържа и трите endpoint-а, но все пак не съм сигурна дали е подходящ избор. Другият вариант, за който съм си мислила, е да използвам Comment entity-то за RestController-а, но то има поле User addedBy и не съм сигурна как точно да подходя при изнасянето му в отделен проект. Има ли вариант, при който да изнеса само полетата, които не зависят от друго entity и в реалния проект да разширя Comment entity-то като му добавя User addedBy или не е това идеята? Бих искала да помоля за съвет как да постъпя. Благодаря предварително!

@luchob
Copy link
Owner

luchob commented Jul 17, 2024

Здравей!

Всъщност има изискване (поне Софтуни разбират така) да има 3 ендпойнта:

Include logic in a separate service with a Rest Controller, consumed by another service via a Rest Client.
Implement at least 3 endpoints: GET, POST, DELETE.

Т.е. според мен изкарай comment като отделно ентити. Идеята на цялата работа, както съм казвал, е да свикнете да продуцирате и консумирате REST API тъй като това е наистина основно умение в реална среда. Разбирам проблема с user-a. На този етап мога да те посъветвам да вградиш идентификатора му в URL-то. Например: \users\<user-id>\comments. От своя страна размишлявах до случая и реших да предложа да направим възможно най-лесна аутентикация и предаване на user-a между сървисите с JWT токъни, което изглежда малко offtopic но мисля че ще работи добре. Искрено се надявам да ни стигне времето, защото е наистина малко недостатъчно. Все пак едно надникване в тази идея - тук.

Поздрави,
Л.

@luchob luchob closed this as completed Jul 17, 2024
@SavinaDzhenimova
Copy link
Author

Разгледах repo-то относно работата с JWT токъни, но мисля, че времето няма да ми стигне да се справя с тази идея. Поради тази причина реших да създам Partner entity, което да изнеса като идеята ми е това да бъдат партьори на създаденото приложение. Идеята работи до момента. Успявам да взема всички партньори и да ги визуализирам и също така без проблем добавям нов партньор, който също се визуализира. Идеята ми е админът да има право да изтрива партньори. Това е линк към проекта ми с направените промени: https://github.com/SavinaDzhenimova/HomeDeliveryApp.
Проблемът ми обаче е при изтриването на партьор.
Получавам грешка:
org.springframework.web.client.HttpClientErrorException$NotFound: 404 Not Found: "{"timestamp":"2024-07-17T14:38:17.739+00:00","status":404,"error":"Not Found","path":"/partners/4"}"
Доколкото четох в интернет и се запознах с грешката е възможно да бъркам в uri или просто да не съществува такъв елемент, но в базата имам запис със съответното ID.
По този начин изглежда PartnerServiceImpl в изнесената част от проекта ми: https://pastebin.com/eB66juGN.
Това е PartnerController-а: https://pastebin.com/Qyukjmqu.
Не мога да разбера от къде идва грешката при изтриване на партньор.

@luchob luchob reopened this Jul 17, 2024
@luchob
Copy link
Owner

luchob commented Jul 17, 2024

Здравей!

Сигурно е някаква дреболийка, която не виждам на пръв поглед. Ако комитнеш и изнесената част, ще се опитам да помогна.

Поздрави,
Л.

@SavinaDzhenimova
Copy link
Author

Това е линк към изнесената част от проекта: https://github.com/SavinaDzhenimova/HomeDeliveryApp-partners

@luchob
Copy link
Owner

luchob commented Jul 18, 2024

Здравей!

Чекаутнах и съм малко учуден, защото при мен работи. Създадох партньор:

Screenshot 2024-07-18 at 8 26 54

След това с delete бутона се изтри и изчезна от ДБ. В изнесения сървис ми даде лог:

2024-07-18T08:26:56.721+03:00  INFO 5959 --- [nio-8090-exec-6] c.h.service.PartnerServiceImpl           : Delete partner...

Това, което предполагам е, че по някаква причина си била объркала мапинга локално или пък нещо подобно, което е локално. Освен това, delete заявката няма как да свърши с 404. Имаш ли лог за триене в конзолата на другия сървис? Освен това виждам и друга малка нередност, въпреки че едва ли може да счупи нещата. Ползваш абсолютни URL-та, но си настроила и базово URL в конфигурацията на бийна на RestClient-a. Като цяло, не виждам защо да не работи а и при мен си работи...

Поздрави,
Л.

@SavinaDzhenimova
Copy link
Author

Сега пробвах и работи и при мен. Явно е имало някаква локална грешка. Просто отворих двата проекта наново, пуснах ги и всичко работи. Много благодаря за помощта!

@luchob luchob closed this as completed Jul 18, 2024
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

2 participants