Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
@serverless/api
Advanced tools
The provider agnostic API Gateway Framework, powered by [Serverless Components](https://github.com/serverless/components).
The provider agnostic API Gateway Framework, powered by Serverless Components.
$ npm install -g @serverless/components
Just create the following simple boilerplate:
$ touch serverless.yml # more info in the "Configure" section below
$ touch index.js # your lambda code
$ touch .env # your development AWS api keys
$ touch .env.prod # your production AWS api keys
the index.js
file should look something like this:
module.exports.createUser = async (e) => {
return {
statusCode: 200,
body: 'Created User'
}
}
module.exports.getUsers = async (e) => {
return {
statusCode: 200,
body: 'Got Users'
}
}
module.exports.auth = async (event, context) => {
return {
principalId: 'user',
policyDocument: {
Version: '2012-10-17',
Statement: [
{
Action: 'execute-api:Invoke',
Effect: 'Allow',
Resource: event.methodArn
}
]
}
}
}
the .env
files are not required if you have the aws keys set globally and you want to use a single stage, but they should look like this.
AWS_ACCESS_KEY_ID=XXX
AWS_SECRET_ACCESS_KEY=XXX
Keep reading for info on how to set up the serverless.yml
file.
You can configure the component to either create a new REST API from scratch, or extend an existing one.
You can create new REST APIs by specifying the endpoints you'd like to create, and optionally passing a name and description for your new REST API.
# serverless.yml
name: rest-api
createUser:
component: "@serverless/function"
inputs:
name: ${name}-create-user
code: ./code
handler: index.createUser
getUsers:
component: "@serverless/function"
inputs:
name: ${name}-get-users
code: ./code
handler: index.getUsers
auth:
component: "@serverless/function"
inputs:
name: ${name}-auth
code: ./code
handler: index.auth
restApi:
component: "@serverless/api"
inputs:
name: ${name}
description: Serverless REST API
endpoints:
- path: /users
method: POST
function: ${comp:createUser}
authorizer: ${comp:auth}
- path: /users
method: GET
function: ${comp:getUsers}
authorizer: ${comp:auth}
You can extend existing REST APIs by specifying the REST API ID. This will only create, remove & manage the specified endpoints without removing or disrupting other endpoints.
# serverless.yml
name: rest-api
createUser:
component: "@serverless/function"
inputs:
name: ${name}-create-user
code: ./code
handler: index.createUser
getUsers:
component: "@serverless/function"
inputs:
name: ${name}-get-users
code: ./code
handler: index.getUsers
restApi:
component: "@serverless/api"
inputs:
id: qwertyuiop # specify the REST API ID you'd like to extend
endpoints:
- path: /users
method: POST
function: ${comp:createUser}
- path: /users
method: GET
function: ${comp:getUsers}
api (master)$ components
myApig › outputs:
id: 'e4asreichk'
endpoints: [ { path: '/users',
method: 'POST',
function:
'arn:aws:lambda:us-east-1:552750238291:function:rest-api-create-user',
url:
'https://e4asreichk.execute-api.us-east-1.amazonaws.com/dev/users',
id: 'jkgqlqjnf2' },
{ path: '/users',
method: 'GET',
function:
'arn:aws:lambda:us-east-1:552750238291:function:rest-api-get-users',
url:
'https://e4asreichk.execute-api.us-east-1.amazonaws.com/dev/users',
id: 'h7zh3r' } ]
38s › dev › rest-api › done
api (master)$
Checkout the Serverless Components repo for more information.
FAQs
The provider agnostic API Gateway Framework, powered by [Serverless Components](https://github.com/serverless/components).
The npm package @serverless/api receives a total of 0 weekly downloads. As such, @serverless/api popularity was classified as not popular.
We found that @serverless/api demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.