Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
@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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.