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

أداة Sumor Cloud.
المزيد من التوثيق

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

إصدار NPM عدد مرات التنزيل في NPM CI في GitHub اختبار في GitHub تغطية في GitHub فحص في GitHub

التثبيت

npm i @sumor/api-middleware --save

الشروط المسبقة

إصدار Node.JS

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

يتطلب وحدة Node.JS ES

بما أن هذه الحزمة مكتوبة بوحدة 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()

await apiMiddleware(app, process.cwd() + '/api')

app.listen(3000, () => {
  console.log('الخادم يعمل على http://localhost:3000')
})
  1. قم بتشغيل index.js
node index.js
  1. اختبر واجهة البرمجة التطبيقية
curl -X POST http://localhost:3000/plus -H "Content-Type: application/json" -d '{"a": 1, "b": 2}'

أو استخدم المتصفح لفتح http://localhost:3000/plus?a=1&b=2

الخيارات لـ apiMiddleware

import express from 'express'
import apiMiddleware from '@sumor/api-middleware'

const app = express()

await apiMiddleware(app, process.cwd() + '/api', {
  prefix: '/api',
  prepare: async context => {
    // افعل شيئًا قبل واجهة برمجة التطبيقات
  },
  finalize: async (context, result) => {
    // افعل شيئًا بعد واجهة برمجة التطبيقات
  },
  exception: async (context, error) => {
    // التعامل مع الخطأ
  }
})
app.listen(3000, () => {
  console.log('الخادم يعمل على http://localhost:3000')
})

أنواع ملفات التكوين الإضافية

yaml

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

النوع يدعم فقط number، string، boolean، array، object

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 أقل من 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": "يجب أن يكون أكبر من 0"
        }
      ],
      "i18n": {
        "zh": {
          "GREATER_THAN_0": "يجب أن يكون أكبر من 0"
        }
      }
    },
    "b": {
      "name": "parameter b",
      "type": "number"
    }
  }
}

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

السياق

data

تحتوي على جميع المعلمات التي تم تمريرها في الطلب

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

exposeApis

تحتوي على جميع واجهات برمجة التطبيقات المعرضة