@readme/metrics-sdk-snippets
v2.4.2
Published
Generate code snippets for ReadMe Metrics SDKs in multiple languages
Downloads
2,471
Readme
@readme/metrics-sdk-snippets
Generate code snippets for ReadMe Metrics SDKs in multiple languages.
This library was built for ReadMe's Metrics onboarding flow.
Installation
npm install --save @readme/metrics-sdk-snippets
Usage
import { MetricsSDKSnippet } from '@readme/metrics-sdk-snippets';
const { convert } = new MetricsSDKSnippet(
[
{
name: 'petstore_auth',
default: 'default-key',
source: 'security',
type: 'oauth2',
},
{
name: 'basic_auth',
scheme: 'basic',
source: 'security',
type: 'http',
},
],
{ secret: 'my-readme-secret' },
);
console.log(convert('webhooks', 'node', 'express'));
This generates the following object:
{
ranges: {
"security": {
"petstore_auth": { "line": 26 }, // The line where this data is at.
"basic_auth": { "line": 27 }
}
},
snippet: '// see below',
}
The generated snippet for this results in a Personalized Docs Webhook example, which uses the ReadMe Node Metrics SDK:
import express from 'express';
import readme from 'readmeio';
const app = express();
// Your ReadMe secret
const secret = 'my-readme-secret';
app.post('/webhook', express.json({ type: 'application/json' }), async (req, res) => {
// Verify the request is legitimate and came from ReadMe
const signature = req.headers['readme-signature'];
try {
readme.verifyWebhook(req.body, signature, secret);
} catch (e) {
// Handle invalid requests
return res.status(401).json({ error: e.message });
}
// Fetch the user from the database and return their data for use with OpenAPI variables.
// const user = await db.find({ email: req.body.email })
return res.json({
// OAS Security variables
petstore_auth: 'default-key',
basic_auth: { user: 'user', pass: 'pass' },
});
});
const server = app.listen(8000, '0.0.0.0', () => {
console.log('Example app listening at http://%s:%s', server.address().address, server.address().port);
});