وسيط واجهة برمجة التطبيقات

أداة سومور كلاود.
المزيد من التوثيق

وسيط واجهة برمجة التطبيقات هو وسيط لـ 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('الخادم يعمل على 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": "必须大于0"
        }
      }
    },
    "b": {
      "name": "parameter b",
      "type": "number"
    }
  }
}

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

السياق

data

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

سيتم تحليل تحميل الملف ككائن أدناه:

exposeApis

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