Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zrozumienie komunikacji pomiędzy aplikacjami
Forum PHP.pl > Forum > PHP
Nefryt
Witajcie,

Walczę już od kilku dni z pewną kwestią i postanowiłem zwrócić się o pomoc do bardziej doświadczonych osób. Będzie prawdopodobnie więcej teorii niż kodu, dlatego będę wdzięczny za pomoc w zrozumieniu całego zagadnienia.

Sprawa tyczy się komunikacji pomiędzy dwoma aplikacjami - jedną jest strona WWW oparta na systemie WordPress, zaś druga to aplikacja napisana z wykorzystaniem Laravela 5.3. Szczerze mówiąc, nie jest to bardzo istotne w tym momencie na czym pracują te aplikacje, bo przecież w obliczu requestów HTTP prawie wszyscy jesteśmy równi smile.gif

Co chcę osiągnąć? Sprawa zapewne stara jak świat - WordPress wysyła zapytanie do aplikacji Laravela o konkretne zasoby z bazy danych, zaś ten drugi mu odpowiada. Udało mi się osiągnąć taki efekt, lecz czuję że nie powinien on raczej mieć takiej formy. Aktualnie wykorzystuję funkcję WordPressa wp_remote_post, dzięki której wysyłam odpowiednie dane. W Laravelu mam zrobiony odpowiedni routing przyjmuący takie zapytanie i dokonujący swoich czynności z tymi danymi. Następnie dochodzimy do momentu, w którym Laravel powinien wysłać odpowiedź do WordPressa... i tutaj się zaczynają schody:

1. Korzystałem w ramach ćwiczeń z Guzzle oraz cURL, z pomocą których takie requesty wysyłałem. Jeżeli robię to za pomocą GET, to nie ma problemu. Jednakże, preferowany jest oczywiście bezpieczniejszy POST, którego to zawartości z kolei nijak nie jestem w stanie, jeżeli wysyłam go przy pomocy Guzzle lub cURL właśnie. Stworzyłem sobie prosty skrypt do testów, który zapisuje do pliku zawartość tablic $_GET i $_POST - "gety" się pokazują, lecz "posty" już nie. Jeżeli oba te narzędzia nie chcą ze mną współpracować, to sądzę że problem mogę popełniać ja.

2. Po dłuższym przemyśleniu doszedłem do wniosku, że ten cały system nie działa tak do końca, jak "pytanie-odpowiedź". Przecież w momencie wysłania zapytania z WordPressa do Laravela, otrzymuję odpowiedź (status 200) i komunikacja prawdopodobnie się kończy. Dopiero konkretne warunki wymuszają na aplikacji Laravelowskiej, aby wysłała jakieś tam dane do WP - to jest praktycznie oddzielna komunikacja, czyż nie?

3. Jak wypada bezpieczeństwo takiej komunikacji? Czy SSL na serwerze hostującym apkę z Laravelem wystarczy, czy też wysyłąny requesty powinny być jakoś dodatkowo szyfrowane - załóżmy, że lecą tam dane stosunkowo wrażliwe.

Główne pytanie - czy jestem na dobrej drodze i czy da się to zrobić lepiej? Można moją aplikację Laravela uznać za swoiste API, z którym WordPress będzie się komunikował. Ten cały system ma za zadanie pomóc mi w odpowiednim zrozumieniu komunikacji między aplikacjami poprzez HTTP właśnie.

Gorąco dziekuję wytrwałym za przeczytanie i czekam na jakiekolwiek komentarze/wskazówki smile.gif
viking
POST w żaden sposób nie jest bezpieczniejszy więc błędne założenie. Twoje API powinno mieć jakieś logowanie i dopiero po uwierzytelnieniu uzyskujesz dostęp. Sama komunikacja to zwykłe przerzucanie request/response i nagłówków.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.