api-middleware

Un outil Sumor Cloud.
Plus de documentation

API Middleware est un middleware pour Node.JS. Il permet d'exposer facilement des fonctions à une API et de valider les paramètres

CI Test Coverage Audit

Installation

npm i @sumor/api-middleware --save

Prérequis

Version de Node.JS

Requiert Node.JS version 18.x ou supérieure

nécessite le module ES de Node.JS

Comme ce package est écrit en module ES, veuillez modifier le code suivant dans votre fichier package.json :

{
  "type": "module"
}

Utilisation

Utilisation de base

  1. Ajoutez un fichier nommé plus.js dans le dossier api de votre projet
export default async (context, req, res) => {
  const { data } = context
  const { a, b } = data
  return a + b
}
  1. [Facultatif] Ajoutez un fichier de configuration nommé plus.json dans le dossier api de votre projet
{
  "name": "plus",
  "parameters": {
    "a": {
      "name": "parameter a",
      "type": "number",
      "length": 3
    },
    "b": {
      "name": "parameter b",
      "type": "number"
    }
  }
}
  1. Ajoutez le code suivant dans votre fichier index.js
import express from 'express'
import apiMiddleware from '@sumor/api-middleware'

const app = express()
apiMiddleware(app, process.cwd() + '/api')

app.listen(3000, () => {
  console.log("Le serveur est en cours d'exécution sur http://localhost:3000")
})
  1. Exécutez index.js
node index.js

Plus de types de fichiers de configuration

yaml

Vous pouvez utiliser un fichier yaml pour définir un fichier de configuration, remplacez plus.json par plus.yml

name: plus
parameters:
  a:
    name: parameter a
    type: number
    length: 3
  b:
    name: parameter b
    type: number
config.js

Pour prendre en charge les fonctions JavaScript dans un fichier de configuration, vous pouvez utiliser le fichier config.js, remplacez plus.json par plus.config.js

export default {
  name: 'plus',
  parameters: {
    a: {
      name: 'parameter a',
      type: 'number',
      length: 3
    },
    b: {
      name: 'parameter b',
      type: 'number',
      rule: [
        {
          code: 'TOO_BIG',
          message: 'b should be less than 100',
          function: function (value) {
            return value < 100
          }
        }
      ]
    }
  }
}

Règle des paramètres

Vous pouvez vous référer à l'exemple ci-dessous pour appliquer des règles aux paramètres

{
  "name": "plus",
  "parameters": {
    "a": {
      "name": "parameter a",
      "type": "number",
      "length": 3,
      "rule": [
        {
          "code": "GREATER_THAN_0",
          "expression": "^[1-9][0-9]*$",
          "message": "doit être supérieur à 0"
        }
      ],
      "i18n": {
        "zh": {
          "GREATER_THAN_0": "doit être supérieur à 0"
        }
      }
    },
    "b": {
      "name": "parameter b",
      "type": "number"
    }
  }
}

Pour plus d'utilisations, veuillez consulter Validator

context

data

Il inclut tous les paramètres transmis dans la requête

Le téléchargement de fichiers sera analysé comme un objet ci-dessous :

exposeApis

Il inclut toutes les APIs exposées