api-middleware

Ein Sumor Cloud Tool.
Weitere Dokumentation

API Middleware ist ein Middleware für Node.JS. Es kann Funktionen einfach für die API freigeben und Parameter validieren.

CI Test Abdeckung 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, ändern Sie bitte den folgenden Code in Ihrer package.json-Datei:

{
  "type": "module"
}

Verwendung

Grundverwendung

  1. Fügen Sie eine Datei namens 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 namens 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 Ihre Datei index.js 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. Ersetzen Sie plus.json durch plus.yml.

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

Für die Unterstützung von JS-Funktionen in der Konfigurationsdatei können Sie eine Datei config.js verwenden. Ersetzen Sie plus.json durch 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 untenstehendes 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 Verwendungszwecke beachten Sie bitte Validator.

Kontext

Daten

Sie enthält alle im Request übergebenen Parameter.

Dateiuploads werden als folgendes Objekt analysiert:

exposeApis

Es enthält alle freigegebenen APIs.