Hello rest w springu

0

Cześć, przychodzę do Was dzisiaj z prośbą o nakierowanie w jak sposób mógłbym zrealizować w springu (spring-boocie) zrobić TODO app dla wielu użytkowników. Czego potrzebuje:

  1. Crud rest api najlepiej w kotlinie + gradle
  2. Upload zdjęć oraz załączników od użytkowników
  3. Podpięcie pod projekt swaggera (open api) do generowania API oraz stron do ich używania
  4. Jakaś persystencja / baza danych
  5. Autentykacja oraz autoryzacja użytkowników + wylogowanie - nie chciałbym żeby user A widział dane usera B
  6. Serwer gdzie mógłbym to wszystko wrzucić i testować online
  7. Chciałbym mieć łatwość w dodawania nowych środowisk np: prod + staging + test + mobile + dev1, dev2, dev3
  8. Chciałbym mieć łatwość w przenoszeniu zanonimizowanych danych z proda na staging.
  9. Podpięcie testów wydajnościowych dla poszczególnych endpointów.
  10. Gherkin do generowania stubów dla BDD

Co do pierwszego punktu znalazłem: https://github.com/sdeleuze/spring-boot-kotlin-demo - działa

Co mnie interesuje: słowa kluczowe, linki do tutoriali, blogów, audycje, konferencje, linki do githuba z kodem który pokrywa któryś z punktów - im wiecej tym lepiej.

Każda sugestia mile widziana. Kompletnie nie siedzę w backendowych sprawach, jak bredzę to nie bijcie mocno.

Dzięki!

6

testy wydajnosciowe dla TODO app XD

4

Jak wpiszesz w Google „Spring Boot {temat}”, to dostaniesz multum materiałów na każdy z wymienionych punktów.

2

Crud rest api najlepiej w kotlinie + gradle - "Spring Kotlin"
Upload zdjęć oraz załączników od użytkowników - "Spring file upload"
Podpięcie pod projekt swaggera (open api) do generowania API oraz stron do ich używania - "Spring swagger"
Jakaś persystencja / baza danych - "Spring mongodb"
Autentykacja oraz autoryzacja użytkowników + wylogowanie - nie chciałbym żeby user A widział dane usera B - "Spring auth", ale możesz użyć np "Auth0" z którym się dobrze pracuje
Serwer gdzie mógłbym to wszystko wrzucić i testować online - np. "Heroku"
Chciałbym mieć łatwość w dodawania nowych środowisk np: prod + staging + test + mobile + dev1, dev2, dev3 - wow, to musi być hardcorowa aplikacja :D
Chciałbym mieć łatwość w przenoszeniu zanonimizowanych danych z proda na staging. - "mongo export"?
Podpięcie testów wydajnościowych dla poszczególnych endpointów. - "Gatling test"
Gherkin do generowania stubów dla BDD - "cucumber test"

0
nowyworek napisał(a):

testy wydajnosciowe dla TODO app XD

Dzięki za komentarz - spike robię. Znam się dobrze na mobilkach, chcę nauczyć się pisania backendów tak żeby złożyć projekt który nie rozsypie się przy ~10k użytkownikach.

Update:
Done:

  1. Crud rest api najlepiej w kotlinie + gradle
  2. Podpięcie pod projekt swaggera (open api) do generowania API oraz stron do ich używania

Todo:

  1. Autentykacja oraz autoryzacja użytkowników + wylogowanie - nie chciałbym żeby user A widział dane usera B
  2. Serwer gdzie mógłbym to wszystko wrzucić i testować online
  3. Upload zdjęć oraz załączników od użytkowników
  4. Jakaś persystencja / baza danych
  5. Chciałbym mieć łatwość w dodawania nowych środowisk np: prod + staging + test + mobile + dev1, dev2, dev3
  6. Chciałbym mieć łatwość w przenoszeniu zanonimizowanych danych z proda na staging.
  7. Podpięcie testów wydajnościowych dla poszczególnych endpointów.
  8. Gherkin do generowania stubów dla BDD
1

ad 1. Spring Security
ad 2. AWS ec2 / ovh vps etc...
ad 3. upload można zrobić zwykłym kontrolerem przyjmującym w request body octet stream etc.
ad 4. cokolwiek, postgresql, a do tego Spring Data, żebyś się nie bawił w JPA, Hibernate, JDBC
ad 5. dodajesz nowy properties np. application-{nazwa profilu}.yml i uruchamiasz z tym profilem
ad 6. ??? co ma prod do stage? Chyba wbrew przeciwnie, nigdy to się nie powinno ze sobą przeciąć w żaden sposób
ad 7. no to już zewnętrzna kwestia, ja używam Gatling
ad 8. nie mam pojęcia

0

Maly update: wszystkie punkty oprocz spring security zrealizowane. Mozna juz startowac jako mid java dev ;)

1

Mid java dev bo zrobiłeś cruda w spring boocie? Dobry żart ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1