api-middleware

Ein Sumor Cloud Tool.
Mehr Dokumentation

API Middleware ist ein Middleware für Node.JS. Es kann Funktionen leicht der API zugänglich machen und Parameter validieren.

CI Test Coverage Audit

Installation

npm i @sumor/api-middleware --save

Voraussetzungen

Node.JS Version

Erfordert Node.JS Version 18.x oder höher

Erforderliches Node.JS ES-Modul

Da dieses Paket in ES-Modul geschrieben ist, bitte ändern Sie den folgenden Code in Ihrer package.json-Datei:

{
  "type": "module"
}

Verwendung

Grundlagen

  1. Fügen Sie eine Datei mit dem Namen plus.js in Ihrem Projektordner api hinzu
export default async (context, req, res) => {
  const { data } = context
  const { a, b } = data
  return a + b
}
  1. [Optional] Fügen Sie eine Konfigurationsdatei mit dem Namen plus.json in Ihrem Projektordner api hinzu
{
  "name": "plus",
  "parameters": {
    "a": {
      "name": "Parameter a",
      "type": "number",
      "length": 3
    },
    "b": {
      "name": "Parameter b",
      "type": "number"
    }
  }
}
  1. Fügen Sie den folgenden Code in Ihrer index.js-Datei hinzu
import express from 'express'
import apiMiddleware from '@sumor/api-middleware'

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

app.listen(3000, () => {
  console.log('Server läuft auf http://localhost:3000')
})
  1. Führen Sie index.js aus
node index.js

Weitere Konfigurationsdateitypen

yaml

Sie können eine YAML-Datei verwenden, um die Konfigurationsdatei zu definieren, verwenden Sie anstelle von plus.json plus.yml

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

Um JS-Funktionen in der Konfigurationsdatei zu unterstützen, können Sie eine config.js-Datei verwenden, verwenden Sie anstelle von plus.json 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 sollte kleiner als 100 sein',
          function: function (value) {
            return value < 100
          }
        }
      ]
    }
  }
}

Parameterregel

Sie können das folgende Beispiel verwenden, um Regeln auf Parameter anzuwenden

{
  "name": "plus",
  "parameters": {
    "a": {
      "name": "Parameter a",
      "type": "number",
      "length": 3,
      "rule": [
        {
          "code": "GREATER_THAN_0",
          "expression": "^[1-9][0-9]*$",
          "message": "muss größer als 0 sein"
        }
      ],
      "i18n": {
        "zh": {
          "GREATER_THAN_0": "muss größer als 0 sein"
        }
      }
    },
    "b": {
      "name": "Parameter b",
      "type": "number"
    }
  }
}

Für weitere Verwendungen, siehe Validator

Kontext

data

Es enthält alle im Request übergebenen Parameter

Datei-Upload wird wie folgt analysiert:

exposeApis

Es enthält alle ausgesetzten APIs