Rest API

0

Hej,

Mam pytanko odnosnie API. Do teraz jak pracowałem nad jakimkolwiek projektem to zajmowałem się front'em i nie miałem zbytnio pracy przy bazie danych ale chciałbym do zmienić.
Do projektów, które robiłem dostawałem link do API, do którego POST'em wysyłałem zapytania i dostałem zwrot, który później parsowałem i dostawałem odpowiednie informacji.
Tutaj pojawia się moje pytanie. Chciałbym sam stworzyć takie API. Chciałbym się podłączyć pod moją własną testową bazę danych i na niej pracować. Macie jakieś fajne strony gdzie jest to odpowiednio rozpisane jak to zrobić? Wraz z wgraniem API do serwera bazy danych itd.
Jestem kompletnym laikiem jeżeli chodzi ogólnie o tworzenie takich rzeczy i podpinanie je pod bazę.
Znalazłem na yt ładny poradnik, który opisuje dokładnie czego chce po prostu zwykły CRUD (tworzenie, odczytywanie itd) ale niestety poradnik w PHP'ie.
Poniżej podaje link'a do przykładowego filmu:

Mógłby ktoś jakoś szerzej rozpisać czego potrzeba do tworzenia własnego API itd?

Z góry dziękuję za odpowiedzi,
Szymon

0

Na jakim poziomie ogarniasz jave?

Najszybciej będzie to zrobić na spring boocie, podłączasz bazę danych, a resztę masz skonfigurowaną. Do nauki pisania API RESTowego wystarczy.

Fraza dla Ciebie do wpisania w google to "java spring boot rest api"

0

Java myślę, że jest na poziomie juniora.
Dzięki wielkie za odpowiedz :)

1

@Szymon Markowski: na poziomie juniora, to najszybciej będzie Spring REST REpositories:

  1. https://docs.spring.io/spring-data/rest/docs/3.1.10.RELEASE/reference/html/ – dokumentacja
  2. https://github.com/spring-projects/spring-data-book/tree/master/rest – przykładowy projekt
  3. https://github.com/spring-projects/spring-data-examples/tree/master/rest – przykłady dla różnych elementów.
0

@Koziołek: dzięki za odpowiedz.

0

Oczywiście że szybciej napiszesz to w Python
Polecam zobaczyć Flask

0
Marcin Michalak napisał(a):

Oczywiście że szybciej napiszesz to w Python
Polecam zobaczyć Flask

Tylko nie wiem czy nauka od zera Pythona po to zeby napisac w nim API jest szybsza :D

0

@Szymon Markowski: a co tak, że nauka kolejnego języka z tego samego paradygmatu jest prosta i łatwa. A akurat jeśli chcesz coś szybko zrobić to Python i flask jak kolega wyżej napisał jest idealnym rozwiązaniem.

0

Spring Data REST wspomniana przez Koziołka to chyba najszybszy sposób na stworzenie przykładowego REST API. Endpointy są tworzone automatycznie na podstawie repozytoriów, ale w jaki sposób dokładnie to musisz doczytać, bo nie stosuję tego w swoich projektach.

0

Dla zwolenników "one dependency EE project" vlogi Adama Bien'a. Z wielu które autor stworzył pewnie połowa jest nt REST API
Dla przecinków w ogóle EE Ratpack

0

@Marcin Michalak, no nie wiem, czy w pythonie będzie szybciej niż w Javie z użyciem REST Repositories:

@RepositoryRestResource(collectionResourceRel = "customers", path = "customers")
public interface CustomerRepository extends PagingAndSortingRepository<Customer, Long> {
	Customer findByEmailAddress(@Param("emailAddress") EmailAddress emailAddress);
}

I to już wystawia endpoint CRUD + jedna dodatkowa metoda GET :)

0

Znacie jakiegoś konkretnego autora, którego można polecić do nauki?
Reasumując chciałbym wiedzieć jak podłączyć API do mojej bazy danych (nie localhosta tylko normalny hosting przykładowo
freemysqlhosting). Chciałbym przykładowo zrobić apke, która wysyła odpowiednie dane takie jak np. imie, nazwisko, wiek i zostają one zapisane w bazie jako nowy użytkownik. Adekwatnie chciałbym być w stanie przykładowo zalogować się z poziomu apki (wiem jak odczytywać wynik z API) na konto, które istnieje w bazie danych wysyłając login i hasło.

Dzięki wielkie z góry za zainteresowanie tematem :)

0
Szymon Markowski napisał(a):

Znacie jakiegoś konkretnego autora, którego można polecić do nauki?
Reasumując chciałbym wiedzieć jak podłączyć API do mojej bazy danych (nie localhosta tylko normalny hosting przykładowo
freemysqlhosting). Chciałbym przykładowo zrobić apke, która wysyła odpowiednie dane takie jak np. imie, nazwisko, wiek i zostają one zapisane w bazie jako nowy użytkownik. Adekwatnie chciałbym być w stanie przykładowo zalogować się z poziomu apki (wiem jak odczytywać wynik z API) na konto, które istnieje w bazie danych wysyłając login i hasło.

Dzięki wielkie z góry za zainteresowanie tematem :)

Bardzo często to robię i ponownie zrobię to teraz - Baeldung ma super tutoriale do Springa, ale też ogólnie do Javy.

0

Jeszcze jedno pytanie. Chciałem się połączyć a Spring boot z moja lokalna baza danych tzw. localhost.

Używam odpowiednio koment do połączenia:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc//localhost:3306/web_customer_tracker
jdbc.user=root
jdbc.password=root

i po odwolaniu się do niej i próbie wyciągnięcia czegoś z niej wyskakuje błąd z kodem 500.
Co może byc powodem ?

Edit:
Jak to jest z połączeniem się z baza danych, która nie jest lokalna?
Czy zwykły hosting na jakiejś darmowej stronce jest wystarczający? Gdzie ładuje się tzw. kod ?
Ogólnie na jakiej zasadzie to działa?

0
Szymon Markowski napisał(a):

ale na jakiej zasadzie to działa? W sensie mam kod, który istnieje u mnie na kompie sobie więc jak ktoś z innego kompa odwołując się do mojego API wie co w kodzie "siedzi" ?

Nie rozumiem pytania - chyba.

Jak wystawisz api lokalnie, to nikt spoza twojej sieci nie będzie miał do niego dostępu.
Jeśli chcesz aby ktoś obcy miał dostęp to stawiasz swoje API publicznie - właśnie na jakimś hostingu oferującym stawianie apek javowych.

Poza tym, stawiając API, nie chcesz aby ktoś widział Twój kod w środku (no chyba, że to open source), tylko udostępniasz mu end pointy, na które może wysyłać dane / odbierać dane.

0

Czyli hosting, na który stawiam swoją bazę danych również powinien mieć możliwość wstawiania na nim plików obsługujących API ?

0

Edit:
Jak to jest z połączeniem się z baza danych, która nie jest lokalna?
Czy zwykły hosting na jakiejś darmowej stronce jest wystarczający? Gdzie ładuje się tzw. kod ?
Ogólnie na jakiej zasadzie to działa?

Podajesz adres bazy wraz z portem w takiej samej konwencji jak połączenie lokalne z bazą + podajesz login i hasło do bazy. Zauważ, że przy lokalnym połączeniu wpisujesz po prostu localhost, co byłoby zamienne (poprawcie mnie, jeżeli się mylę) z 127.0.0.1:8080/nazwa-bazy. Tak samo jedziesz z bazą zewnętrzną podając adres ip/nazwę domenową i ścieżkę do bazy, która Cię interesuje. W innych parach propertiesów podajesz login i hasło, które Cię uwierzytelnią, lub też nie.

0

Hosting do bazy danych nie musi być taki sam co hosting apki javowej. Musisz po prostu podać adres tej bazy w swoim kodzie (propertisy).

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