fdy-scraping
v1.0.3
Published
`fdy-scraping` is a versatile HTTP client designed for making API requests with support for proxy configuration, debugging, and detailed error handling. It utilizes the [`got-scraping`](https://github.com/apify/got-scraping) library for HTTP operations.
Downloads
3,033
Maintainers
Readme
fdy-scraping
fdy-scraping
is a versatile HTTP client designed for making API requests with support for proxy configuration, debugging, and detailed error handling. It utilizes the got-scraping
library for HTTP operations.
Installation
To use fdy-scraping
, you need to install the got-scraping
library. Run the following command to install it via npm:
npm install fdy-scraping
Usage
Importing the Client
Import fdy-scraping
into your Node.js application:
const fdy = require("fdy-scraping");
OR
import fdy from "fdy-scraping";
Creating a Client Instance
Create a new client instance with custom options:
create(options?: FetchClientOptions, debug?: boolean): FdyFetchClient;
const client = fdy.create(
{
headers: { Authorization: "Bearer your-token" },
proxy: {
ip: "127.0.0.1",
port: 8080,
protocol: "http",
username: "username",
password: "password",
},
baseUrl: "https://api.example.com",
},
true
); // Set debug mode to true
Making HTTP Requests
You can use the client to make various types of HTTP requests:
Request
request(url, method, body = undefined, headers = undefined, options = undefined)
client
.request("/endpoint", "POST", undefined, { Accept: "application/json" })
.then((response) => {
console.log(response.data); // Response data
})
.catch((error) => {
console.error("Error:", error.message);
});
GET Request
get(url, headers = {}, options = {}, enableDebug = false)
client
.get("/endpoint", { Accept: "application/json" })
.then((response) => {
console.log(response.data); // Response data
})
.catch((error) => {
console.error("Error:", error.message);
});
POST Request
post(url, body = undefined, headers = {}, options = {}, enableDebug = false)
client
.post("/endpoint", JSON.stringify({ key: "value" }), {
"Content-Type": "application/json",
})
.then((response) => {
console.log(response.data); // Response data
})
.catch((error) => {
console.error("Error:", error.message);
});
PUT Request
put(url, body = undefined, headers = {}, options = {}, enableDebug = false)
client
.put("/endpoint", JSON.stringify({ key: "new-value" }), {
"Content-Type": "application/json",
})
.then((response) => {
console.log(response.data); // Response data
})
.catch((error) => {
console.error("Error:", error.message);
});
DELETE Request
delete(url, headers = {}, options = {}, enableDebug = false)
client
.delete("/endpoint", { Accept: "application/json" })
.then((response) => {
console.log(response.data); // Response data
})
.catch((error) => {
console.error("Error:", error.message);
});
Error Handling
fdy-scraping
provides detailed error information through the FdyFetchClientError
class. Errors include the status code, response data, and request configuration.
client.get("/invalid-endpoint").catch((error) => {
if (error instanceof fdy.FdyFetchClientError) {
console.error("Custom Error Details:");
console.error("Status:", error.status);
console.error("Response:", error.response);
console.error("Config:", error.config);
} else {
console.error("General Error:", error.message);
}
});
Configuration Options
FetchClientOptions
headers
: Optional object containing default headers for requests.proxy
: Optional object for proxy configuration.ip
: IP address of the proxy server.port
: Port of the proxy server.protocol
: Protocol used by the proxy (http
orhttps
).username
: Optional username for proxy authentication.password
: Optional password for proxy authentication.
baseUrl
: Optional base URL for requests.
Debug Mode
Debug mode can be enabled by passing true
as the second argument to FdyFetchClient.create
. When enabled, additional error information will be logged to the console.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Feel free to adjust the paths, options, or methods according to your actual implementation and package setup.