Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> API bez API
deha21
post
Post #1





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

Ostrzeżenie: (0%)
-----


Tytuł nie wiele mówiący, ale dokładnie o to mi chodzi. Dostałem zapytanie o stworzenie panelu dla powiedzmy sklepu internetowego, który chce mieć zintegrowane Allegro i jeszcze jeden inny serwis. W przypadku Allegro to proste bo mają API, ale tamten drugi serwis nie ma. Czy jest jakaś możliwość żeby za pomocą czegoś (CURL?) wystawić przedmiot na tamtej stronie? Oczywiście trzeba się tam zalogować na swoje konto itp. Czy jest to w ogóle do zrobienia?
Go to the top of the page
+Quote Post
matiit
post
Post #2





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

Ostrzeżenie: (0%)
-----


Tak jest do zrobienia.

Możesz zaprogramować wszystko co możesz zrobić ręcznie.

Przecież jak obsługujesz przeglądarkę (klikasz coś) to ona wysyła requests, odbiera responses, zapisuje cookies itd.
Go to the top of the page
+Quote Post
matiit
post
Post #3





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

Ostrzeżenie: (0%)
-----


I jeszcze dobra rada jeśli przewidujesz więcej używać tego nie api.

Owiń sobie to w jakiś wrapper, najprosciej jak sie da, żeby można było temu wrapperowi powiedzieć co ma robić, bez detali.

np.

  1. <?php
  2.  
  3. abstract class CatalogWrapper {
  4.  
  5. abstract public function addAction(Action $action);
  6. }
  7.  
  8. class TitiesCatalogWrapper extends CatalogWrapper {
  9.  
  10. // W tej klasie logika tego co ma byc robione poprzez konkretny serwis (ten do ktorego nie ma API) wrapper
  11.  
  12. public function addAction(Action $action) {
  13.  
  14. }
  15. }
  16.  


Tak jako minimalna abstrakcja - na pewno na przyszłość będzie łatwiejsze w użyciu a i będzie łatwiej dopisać i używać inną integrację.


Go to the top of the page
+Quote Post
SmokAnalog
post
Post #4





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Ja bym zaczął od upewnienia się czy na pewno nie mają API, być może mają API niepubliczne, warto się dowiedzieć. A jeśli nie ma, to tak jak koledzy przede mną napisali - testowanie co, jak i z czym się wysyła. Na przykład zakładka Network w narzędziach developerskich Google Chrome stanie się Twoim przyjacielem.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Taa, Pisanie "API" pod stronę NieApi to zgroza. O ile przy prostych serwisach nie ma problemu większego to większe serwisy często starają się jak mogą avy utrudnić takie działania (vel Play (IMG:style_emoticons/default/biggrin.gif) )
Go to the top of the page
+Quote Post
deha21
post
Post #6





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

Ostrzeżenie: (0%)
-----


Cytat(matiit @ 15.11.2016, 21:09:29 ) *
Przecież jak obsługujesz przeglądarkę (klikasz coś) to ona wysyła requests, odbiera responses, zapisuje cookies itd.

Tak właśnie myślałem. Wiem jak to ogarnąć Ajaxem ale chyba CURLem byłoby wygodniej? Jeśli się da bo w CURLu nie siedziałem za bardzo, nie wiem czy mogę otworzyć jakąś stronkę  wysyłając przy tym jakieś headery itp..
Go to the top of the page
+Quote Post
viking
post
Post #7





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Jak najbardziej możesz. Wszystko co w przeglądarce odbierasz / wysyłasz zrobisz też curlem. Ale powodzenia szczerze mówiąc. Załóżmy że ten serwis ma drzewo kategorii jak allegro, różne parametry dla produktów. Mordercza praca.
Go to the top of the page
+Quote Post
!*!
post
Post #8





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Ewentualnie zamiast curl użyć jakiejś "przeglądarki cli" np phantomjs. Wtedy nie jesteś zależy od zmian wprowadzanych na stronie i nie musisz się martwić jak przy logowaniu zmieni się pole formularza a pobieranie wspomnianych kategorii jest prostsze i w czasie "rzeczywistym"

Ten post edytował !*! 16.11.2016, 15:54:46
Go to the top of the page
+Quote Post
Pyton_000
post
Post #9





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Ajaxem tego nie zrobisz jeśli docelowa strona nie wysyła odpowiednich nagłówków
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 13:10