الوسيط-التطبيقات

أداة Sumor Cloud. المستندات الإضافية

وسيط API هو وسيط لـ Node.JS. يمكنه بسهولة تعريض الدوال للواجهة البرمجية، والتحقق من الباراميترات

CI Test Coverage Audit

التثبيت

npm i @sumor/api-middleware --save

المتطلبات المسبقة

إصدار Node.JS

يتطلب إصدار Node.JS 18.x أو أعلى

يتطلب استخدام وحدة ES من Node.JS

نظرًا لأن هذه الحزمة مكتوبة بوحدة ES، يرجى تغيير الكود التالي في ملف package.json الخاص بك:

{
  "type": "module"
}

الاستخدام

الاستخدام الأساسي

  1. أضف ملفًا بأسم plus.js في مجلد مشروعك api
export default async (context, req, res) => {
  const { data } = context
  const { a, b } = data
  return a + b
}
  1. [اختياري] أضف ملف تكوين بأسم plus.json في مجلد مشروعك api
{
  "name": "plus",
  "parameters": {
    "a": {
      "name": "parameter a",
      "type": "number",
      "length": 3
    },
    "b": {
      "name": "parameter b",
      "type": "number"
    }
  }
}
  1. أضف الكود التالي في ملف الـ 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('Server is running on http://localhost:3000')
})
  1. قم بتشغيل index.js
node index.js

المزيد من أنواع ملف التكوين

yaml

يمكنك استخدام ملف yaml لتعريف ملف التكوين، استبدل plus.json بـ plus.yml

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

لدعم دوال js في ملف التكوين، يمكنك استخدام ملف config.js، استبدل 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 should be less than 100',
          function: function (value) {
            return value < 100
          }
        }
      ]
    }
  }
}

قاعدة الباراميتر

يمكنك الرجوع إلى المثال أدناه لتطبيق قواعد على الباراميترات

{
  "name": "plus",
  "parameters": {
    "a": {
      "name": "parameter a",
      "type": "number",
      "length": 3,
      "rule": [
        {
          "code": "GREATER_THAN_0",
          "expression": "^[1-9][0-9]*$",
          "message": "must be greater than 0"
        }
      ],
      "i18n": {
        "zh": {
          "GREATER_THAN_0": "must be greater than 0"
        }
      }
    },
    "b": {
      "name": "parameter b",
      "type": "number"
    }
  }
}

لمزيد من الاستخدام، يرجى الرجوع إلى Validator

السياق

data

يتضمن جميع الباراميترات المرسلة في الطلب

سيتم تحليل تحميل الملف كما يلي:

exposeApis

يتضمن جميع الواجهات المكشوفة