Czy w Node.js , poza wykorzystaniem procesu potomnego do wywołania CURL , istnieje sposób na wywołanie CURL do interfejsu API REST serwera zdalnego i uzyskanie danych zwrotnych?
Muszę również skonfigurować nagłówek żądania do zdalnego wywołania REST , a także ciąg zapytania również w GET (lub POST).
Znajduję to: http://blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs
ale nie pokazuje żadnego sposobu na ciąg zapytania POST.
Odpowiedzi:
Patrzeć na
http.request
źródło
Co powiesz na korzystanie z żądania - uproszczonego klienta HTTP .
Edytuj luty 2020: Wniosek został wycofany, więc prawdopodobnie nie powinieneś go więcej używać.
Oto GET:
OP chciał również POST:
źródło
Spójrz na http://isolasoftware.it/2012/05/28/call-rest-api-with-node-js/
źródło
Korzystam z funkcji pobierania węzłów, ponieważ używa ona znanego (jeśli jesteś programistą ) interfejsu API fetch () . fetch () to nowy sposób na wysyłanie dowolnych żądań HTTP z przeglądarki.
Tak, wiem, że jest to pytanie dotyczące węzła, ale czy nie chcemy zmniejszyć liczby programistów API, którzy muszą zapamiętywać i rozumieć, oraz poprawić możliwość ponownego wykorzystania naszego kodu javascript? Pobieranie jest standardem, więc co powiesz na to?
Inną zaletą fetch () jest to, że zwraca obietnicę javascript , dzięki czemu można napisać kod asynchroniczny w następujący sposób:
Fetch zastępuje XMLHTTPRequest . Oto kilka informacji .
źródło
node-fetch
pisaniem interfejsów API polega na tym, że działa tylko pełny adres URL i nie będzie działać z względnymi adresami URL.Używam Restlera do nawiązywania połączeń z usługami internetowymi , działa jak urok i jest całkiem fajny.
źródło
Axios
Przykład (axios_example.js) przy użyciu Axios w Node.js:
Upewnij się, że w katalogu projektu wykonujesz:
Następnie możesz przetestować interfejs API REST Node.js za pomocą przeglądarki pod adresem:
http://localhost:5000/search?queryStr=xxxxxxxxx
Podobnie możesz robić posty, takie jak:
SuperAgent
Podobnie możesz użyć SuperAgent.
A jeśli chcesz wykonać podstawowe uwierzytelnianie:
Ref:
źródło
Aby korzystać z najnowszych funkcji Async / Await
https://www.npmjs.com/package/request-promise-native
//kod
źródło
jeszcze jeden przykład - musisz do tego zainstalować moduł żądania
źródło
źródło
Nie znalazłem żadnego z cURL, więc napisałem wrapper wokół node-libcurl i można go znaleźć na stronie https://www.npmjs.com/package/vps-rest-client .
Aby wykonać test POST, należy:
źródło
Jeśli masz Node.js 4.4+, spójrz na reqclient , pozwala on wykonywać połączenia i rejestrować żądania w stylu cURL , dzięki czemu możesz łatwo sprawdzać i odtwarzać połączenia poza aplikacją.
Zwraca Obietnica obiektów zamiast wprost prostych wywołań zwrotnych, dzięki czemu można obsługiwać wynik w bardziej „mody” sposób, łańcuch łatwo wynik i błędy uchwytem w sposób standardowy. Usuwa również wiele konfiguracji podstawek na każde żądanie: podstawowy adres URL, limit czasu, format typu zawartości, domyślne nagłówki, parametry i powiązanie zapytania w adresie URL oraz podstawowe funkcje pamięci podręcznej.
Oto przykład, jak go zainicjować, wykonać połączenie i zarejestrować operację w stylu curl :
Spowoduje to zalogowanie się do konsoli ...
A kiedy odpowiedź zostanie zwrócona ...
Oto przykład obsługi odpowiedzi za pomocą obiektu promise:
Oczywiście, może być zainstalowany:
npm install reqclient
.źródło
Możesz użyć curlrequest, aby łatwo ustawić czas żądania, który chcesz zrobić ... możesz nawet ustawić nagłówki w opcjach „ fałszywego ” wywołania przeglądarki.
źródło
Ostrzeżenie: od 11 lutego 2020 r. Żądanie jest całkowicie przestarzałe.
Jeśli implementujesz za pomocą danych formularza, aby uzyskać więcej informacji ( https://tanaikech.github.io/2017/07/27/multipart-post-request-using-node.js ):
źródło
Uznałem, że superagent jest naprawdę przydatny, na przykład jest bardzo prosty
źródło