@onlineapps/cookbook-transformer
v1.1.5
Published
OpenAPI to cookbook transformation and mapping - handles API spec analysis and conversion
Maintainers
Readme
@onlineapps/cookbook-transformer
OpenAPI to cookbook transformation and mapping - handles API spec analysis and conversion.
Overview
This package provides transformation utilities between OpenAPI specifications and cookbook workflow definitions. It analyzes API specs, generates cookbook steps, and maps between different formats.
Installation
npm install @onlineapps/cookbook-transformerFeatures
- OpenAPI spec analysis - Extract operations, schemas, and dependencies
- Cookbook generation - Auto-generate workflows from API specs
- Step translation - Convert between cookbook steps and API calls
- Response mapping - Transform API responses to workflow outputs
- JSONPath support - Advanced data mapping capabilities
Usage
Generate cookbook from OpenAPI
const { CookbookGenerator } = require('@onlineapps/cookbook-transformer');
const generator = new CookbookGenerator({
defaultTimeout: 10000,
defaultRetry: {
maxAttempts: 3,
delayMs: 2000
}
});
const openApiSpec = require('./api-spec.json');
const cookbook = generator.generate(openApiSpec);Analyze API specification
const { ApiSpecAnalyzer } = require('@onlineapps/cookbook-transformer');
const analyzer = new ApiSpecAnalyzer();
const analysis = analyzer.analyze(openApiSpec);
console.log(analysis.summary);
// { totalEndpoints: 10, tags: ['users', 'products'], ... }Translate cookbook steps to API calls
const { StepTranslator } = require('@onlineapps/cookbook-transformer');
const translator = new StepTranslator(openApiSpec);
const apiCall = translator.translateToApiCall({
type: 'task',
service: 'user-service',
operation: 'getUser',
input: { id: '123' }
});Map API responses
const { ResponseMapper } = require('@onlineapps/cookbook-transformer');
const mapper = new ResponseMapper();
const output = mapper.mapResponse(
apiResponse,
{
userId: '$.data.id',
userName: '$.data.attributes.name',
email: '$.data.attributes.email'
}
);API Reference
CookbookGenerator
Generate cookbook workflows from OpenAPI specs:
const generator = new CookbookGenerator(options);
const cookbook = generator.generate(openApiSpec, options);Options:
defaultTimeout- Default timeout for operations (ms)defaultRetry- Default retry configurationincludeOptionalParams- Include optional parametersgenerateExamples- Generate example values
ApiSpecAnalyzer
Analyze OpenAPI specifications:
const analyzer = new ApiSpecAnalyzer();
const analysis = analyzer.analyze(spec);Returns:
summary- Overview statisticsendpoints- Detailed endpoint informationschemas- Data schemasdependencies- Operation dependencies
StepTranslator
Translate between cookbook steps and API calls:
const translator = new StepTranslator(spec);
const apiCall = translator.translateToApiCall(step);
const step = translator.translateFromApiCall(apiCall);ResponseMapper
Map API responses to cookbook outputs:
const mapper = new ResponseMapper();
const output = mapper.mapResponse(response, mapping);
const transformed = mapper.transform(data, schema);Mapping Examples
Simple field mapping
{
"name": "$.user.name",
"email": "$.user.email",
"id": "$.user.id"
}Array mapping
{
"items": "$.data[*].id",
"count": "$.data.length",
"firstItem": "$.data[0]"
}Complex transformations
{
"fullName": {
"$concat": ["$.firstName", " ", "$.lastName"]
},
"isActive": {
"$equals": ["$.status", "active"]
}
}Related Packages
@onlineapps/cookbook-core- Core parsing and validation@onlineapps/cookbook-executor- Workflow execution engine@onlineapps/cookbook-router- Message routing@onlineapps/connector-cookbook- Full-featured wrapper
License
PROPRIETARY - All rights reserved
