#P1752
POST /v2/core/application_interface
Store Application Interface (Create New)
این اندپوینت برای ایجاد یک رابط نرمافزاری جدید در سیستم استفاده میشود. نکته حائز اهمیت در این متد، نحوه ارسال پارامترهای دستهبندی است؛ فیلدهایی مانند نوع و سرویس باید به صورت آبجکت ارسال شوند تا سیستم بتواند عنوان (Title) آنها را استخراج و ذخیره کند.
Request Overview
URL:
/v2/core/application_interfaceMethod: POST
Controller: CoreController@storeApplicationInterface
Middleware: authWithJwt
Access Control
- نیاز به توکن احراز هویت (JWT) دارد.
Body Parameters
پارامترهای زیر باید در بدنه درخواست (Body) به صورت JSON ارسال شوند:
| Field | Type | Description |
|---|---|---|
| branch | integer | شناسه شعبه مربوطه. |
| type | object | (ساختار خاص) باید شامل کلید title باشد. مثال: {"title": "api"} |
| service | object | (ساختار خاص) باید شامل کلید title باشد. مثال: {"title": "nira"} |
| object_type | object | (ساختار خاص) نوع موجودیت هدف. باید شامل کلید title باشد. مثال: {"title": "colleague"} |
| object | object | null | موجودیت هدف. باید شامل کلید id باشد. اگر ارسال نشود، null ذخیره میشود. مثال: {"id": 50} |
| url | string | آدرس URL رابط (در صورت وجود). |
| username | string | نام کاربری اتصال. |
| password | string | کلمه عبور اتصال. |
| data | string/text | سایر دادههای پیکربندی (معمولاً JSON String یا کلید API). |
| priority | integer | اولویت رابط. |
| status | integer | وضعیت فعال (1) یا غیرفعال (0). |
Logic Details
فرآیند ذخیرهسازی به شرح زیر است:
- استخراج دادهها: مقادیر از آبجکتهای ورودی استخراج میشوند:
type['title']→ ذخیره در ستونtypeservice['title']→ ذخیره در ستونserviceobject_type['title']→ ذخیره در ستونobject_typeobject['id']→ ذخیره در ستونobject(اگر موجود نباشد Null).
- درج در دیتابیس: رکورد جدید با دستور
insertGetIdایجاد شده و شناسه (ID) تولید شده دریافت میشود. - بازیابی: بلافاصله پس از درج، رکورد کامل با استفاده از ID جدید از دیتابیس خوانده میشود (
find($id)). - خروجی: رکورد ذخیره شده به عنوان پاسخ بازگردانده میشود.
Response Structure
نمونه Body ارسالی (Request)
{
"branch": 1,
"type": { "id": "api", "title": "api" },
"service": { "id": "nira", "title": "nira" },
"object_type": { "id": "colleague", "title": "colleague" },
"object": { "id": 50, "name": "Ali..." },
"url": "https://api.example.com",
"username": "user1",
"password": "pass123",
"data": "API_KEY_STRING",
"priority": 0,
"status": 1
}
نمونه پاسخ موفق (200 OK)
{
"payload": {
"id": 106,
"branch": 1,
"type": "api",
"service": "nira",
"object_type": "colleague",
"object": 50,
"url": "https://api.example.com",
"username": "user1",
"password": "pass123",
"data": "API_KEY_STRING",
"priority": 0,
"status": 1,
"created_at": null,
"updated_at": null
},
"meta": {
"timestamp": 1733752000
}
}
Flowchart
Start Request (POST Data)
↓
Extract Properties:
type -> title
service -> title
object -> id
type -> title
service -> title
object -> id
↓
DB::insertGetId(...)
↓
DB::find($new_id)
↓
Return New Record