@bernierllc/api-connector
v0.3.2
Published
HTTP/HTTPS API connector for REST, GraphQL, and custom HTTP endpoints
Downloads
91
Readme
@bernierllc/api-connector
HTTP/HTTPS API connector for REST, GraphQL, and custom HTTP endpoints with support for Socrata and ArcGIS APIs.
Overview
This service package provides a unified interface for connecting to various API types, including REST APIs, GraphQL endpoints, and specialized APIs like Socrata SODA and ArcGIS REST.
Installation
npm install @bernierllc/api-connectorUsage
REST API
import { ApiConnector } from '@bernierllc/api-connector';
const connector = new ApiConnector({
accessMethod: 'API',
apiType: 'rest',
baseURL: 'https://api.example.com',
auth: {
type: 'bearer',
token: 'your-token'
}
});
await connector.connect();
const result = await connector.fetch({
endpoint: '/users',
query: { limit: 10 }
});GraphQL API
const connector = new ApiConnector({
accessMethod: 'API',
apiType: 'graphql',
graphqlEndpoint: 'https://api.example.com/graphql',
auth: {
type: 'bearer',
token: 'your-token'
}
});
const result = await connector.fetch({
query: {
query: `{ users { id name } }`,
variables: {}
}
});Socrata API
const connector = new ApiConnector({
accessMethod: 'API',
apiType: 'socrata',
socrataConfig: {
datasetId: 'abcd-1234',
domain: 'data.cityofboston.gov',
appToken: 'your-app-token'
}
});
const result = await connector.fetch();ArcGIS REST API
const connector = new ApiConnector({
accessMethod: 'API',
apiType: 'arcgis',
arcgisConfig: {
serviceUrl: 'https://services.arcgis.com/.../FeatureServer',
layerId: 0,
format: 'json'
}
});
const result = await connector.fetch();API Reference
ApiConnector
Main connector class extending BaseDataConnector.
Constructor
new ApiConnector(config: ApiConnectorConfig)Methods
connect(): Promise<ConnectionResult>- Connect to APIdisconnect(): Promise<void>- Disconnect from APIfetch(options?: FetchOptions): Promise<FetchResult>- Fetch datavalidateConfig(): Promise<ValidationResult>- Validate configuration
Dependencies
@bernierllc/data-connector-base- Base connector interface@bernierllc/http-client-base- HTTP client utilities@bernierllc/pagination-handler- Pagination utilitiesgraphql-request- GraphQL clientzod- Schema validation
License
Bernier LLC - Limited Use License
