@robinpath/api
Advanced tools
+102
| # @robinpath/api | ||
| > HTTP client for making requests to external APIs with profiles, auth, download/upload, and auto-JSON parsing | ||
|     | ||
| ## Why use this module? | ||
| The `api` module lets you: | ||
| - Send a GET request to a URL and return the response body (auto-parses JSON) | ||
| - Send a POST request with a JSON body | ||
| - Send a PUT request with a JSON body | ||
| - Send a PATCH request with a partial JSON body | ||
| - Send a DELETE request | ||
| All functions are callable directly from RobinPath scripts with a simple, consistent API. | ||
| ## Installation | ||
| ```bash | ||
| npm install @robinpath/api | ||
| ``` | ||
| ## Quick Start | ||
| **1. Set up credentials** | ||
| ```robinpath | ||
| api.setAuth "github" "bearer" "ghp_xxxxxxxxxxxx" | ||
| ``` | ||
| **2. Send a POST request with a JSON body** | ||
| ```robinpath | ||
| api.post "https://api.example.com/users" {"name": "Alice", "email": "alice@example.com"} | ||
| ``` | ||
| ## Available Functions | ||
| | Function | Description | | ||
| |----------|-------------| | ||
| | `api.get` | Send a GET request to a URL and return the response body (auto-parses JSON) | | ||
| | `api.post` | Send a POST request with a JSON body | | ||
| | `api.put` | Send a PUT request with a JSON body | | ||
| | `api.patch` | Send a PATCH request with a partial JSON body | | ||
| | `api.delete` | Send a DELETE request | | ||
| | `api.head` | Send a HEAD request and return response headers only | | ||
| | `api.download` | Download a file from a URL and save it to disk | | ||
| | `api.upload` | Upload a file as multipart/form-data | | ||
| | `api.createProfile` | Create a named API profile with base URL, default headers, and timeout | | ||
| | `api.setAuth` | Set authentication on an existing profile | | ||
| | `api.setHeaders` | Merge additional default headers into an existing profile | | ||
| | `api.request` | Send a generic HTTP request with an explicit method string | | ||
| ## Examples | ||
| ### Send a POST request with a JSON body | ||
| ```robinpath | ||
| api.post "https://api.example.com/users" {"name": "Alice", "email": "alice@example.com"} | ||
| ``` | ||
| ### Send a PUT request with a JSON body | ||
| ```robinpath | ||
| api.put "https://api.example.com/users/1" {"name": "Bob"} | ||
| ``` | ||
| ### Send a PATCH request with a partial JSON body | ||
| ```robinpath | ||
| api.patch "https://api.example.com/users/1" {"email": "new@example.com"} | ||
| ``` | ||
| ## Integration with RobinPath | ||
| ```typescript | ||
| import { RobinPath } from "@wiredwp/robinpath"; | ||
| import Module from "@robinpath/api"; | ||
| const rp = new RobinPath(); | ||
| rp.registerModule(Module.name, Module.functions); | ||
| rp.registerModuleMeta(Module.name, Module.functionMetadata); | ||
| const result = await rp.executeScript(` | ||
| api.setAuth "github" "bearer" "ghp_xxxxxxxxxxxx" | ||
| api.post "https://api.example.com/users" {"name": "Alice", "email": "alice@example.com"} | ||
| `); | ||
| ``` | ||
| ## Full API Reference | ||
| See [MODULE.md](./MODULE.md) for complete documentation including all parameters, return types, error handling, and advanced examples. | ||
| ## Related Modules | ||
| - [`@robinpath/json`](../json) — JSON module for complementary functionality | ||
| ## License | ||
| MIT |
+23
-7
| { | ||
| "name": "@robinpath/api", | ||
| "version": "0.1.0", | ||
| "publishConfig": { "access": "public" }, | ||
| "version": "0.1.1", | ||
| "publishConfig": { | ||
| "access": "public" | ||
| }, | ||
| "type": "module", | ||
| "main": "dist/index.js", | ||
| "types": "dist/index.d.ts", | ||
| "exports": { ".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" } }, | ||
| "files": ["dist"], | ||
| "scripts": { "build": "tsc" }, | ||
| "peerDependencies": { "@wiredwp/robinpath": ">=0.20.0" }, | ||
| "devDependencies": { "@wiredwp/robinpath": "^0.30.1", "typescript": "^5.6.0" } | ||
| "exports": { | ||
| ".": { | ||
| "import": "./dist/index.js", | ||
| "types": "./dist/index.d.ts" | ||
| } | ||
| }, | ||
| "files": [ | ||
| "dist" | ||
| ], | ||
| "scripts": { | ||
| "build": "tsc" | ||
| }, | ||
| "peerDependencies": { | ||
| "@wiredwp/robinpath": ">=0.20.0" | ||
| }, | ||
| "devDependencies": { | ||
| "@wiredwp/robinpath": "^0.30.1", | ||
| "typescript": "^5.6.0" | ||
| } | ||
| } |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
54593
6.19%10
11.11%0
-100%103
Infinity%5
25%