Bir varlık alan türü ile form gönderme (sayfalar, ürünler...)
Bu örnekte, OneEntry API'sini kullanarak sayfalar veya ürünler gibi bir varlık alan türü içeren bir formun nasıl gönderileceğini gösteriyoruz.
✅ Senaryonun amacı:
- OneEntry Platform'dan form yapılandırmasını almak
- Kullanıcının varlıkların bir öğesini seçmesi
- Toplanan verileri OneEntry API'sine göndermek.
✅ İhtiyacınız olanlar:
- OneEntry API'si ile kimlik doğrulama için geçerli bir PROJECT_URL ve APP_TOKEN.
- OneEntry'de bir işaretçi (örneğin, varlık) ve "varlık" türünde bir alan içeren önceden yapılandırılmış bir form.
- "varlık" türünde bir alan içeren önceden yapılandırılmış form alanları.
📌 Önemli:
- Bu örnekler hata yönetimini içermez.
- Hataları bir try-catch bloğu kullanarak veya await Promise.catch((error) => error) gibi bir yapı kullanarak yönetebilirsiniz.
Senaryo
1. SDK'dan defineOneEntry'i içe aktarın ve url ile token'ı tanımlayın
Örnek:
import { defineOneEntry } from 'oneentry';
const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';
2. defineOneEntry() fonksiyonu ile bir API istemcisi oluşturma
Örnek:
const { Forms, FormData } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});
3. OneEntry Platform'dan form verilerini alarak frontend'de bir form oluşturma Forms.getFormByMarker()
Örnek:
const formData = await Forms.getFormByMarker('entity');
Sonuç:
{
"id": 2,
"attributeSetId": 1,
"type": "data",
"localizeInfos": {
"title": "Varlık",
"titleForSite": "",
"successMessage": "",
"unsuccessMessage": "",
"urlAddress": "",
"database": "0",
"script": "0"
},
"version": 17,
"position": 1,
"identifier": "entity",
"processingType": "script",
"templateId": null,
"attributes": [
{
"type": "entity",
"marker": "entity",
"isLogin": null,
"isSignUp": null,
"position": 1,
"settings": {},
"isVisible": true,
"listTitles": [
{
"id": 1,
"depth": 0,
"title": "Katalog",
"parentId": null,
"position": 1,
"selected": true
},
{
"id": 7,
"depth": 0,
"title": "Premium sayfa",
"parentId": null,
"position": 2,
"selected": true
}
],
"validators": {},
"localizeInfos": {
"title": "Varlık"
},
"additionalFields": [],
"isNotificationEmail": null,
"isNotificationPhoneSMS": null,
"isNotificationPhonePush": null
}
],
"moduleFormConfigs": [
{
"id": 1,
"moduleIdentifier": "content",
"isGlobal": false,
"isClosed": false,
"viewOnlyUserData": false,
"commentOnlyUserData": false,
"entityIdentifiers": [
{
"id": "services",
"isNested": false
}
]
}
]
}
Form gönderimi için ek ayarları alın
Örnek:
const moduleFormConfig = formData?.moduleFormConfigs?.[0];
5. Varlık türü niteliğinin öğelerinden birini seçin ve değeri sayfalar için id'ler (sayısal) dizisi veya ürünler için string dizisi olarak geçirin
Örnek:
[
{
"marker": "entity",
"type": "entity",
"value": [
1
]
}
]
6. FormData.postFormsData() ile form verilerini gönderin
Örnek:
const response = FormData.postFormsData({
formIdentifier: 'entity',
formData: fieldsData,
formModuleConfigId: moduleFormConfig?.id || 0,
moduleEntityIdentifier:
moduleFormConfig?.entityIdentifiers?.[0]?.id || '',
replayTo: null,
status: 'sent',
});
console.log(response);
Sonuç:
{
"formData": {
"formIdentifier": "entity",
"time": "2025-11-10T06:29:42.887Z",
"formData": [
{
"marker": "entity",
"type": "entity",
"value": [
1
]
}
],
"entityIdentifier": "services",
"fingerprint": "UQ_rrofe2",
"isUserAdmin": false,
"formModuleId": 1,
"userIdentifier": null,
"parentId": null,
"id": 118
},
"actionMessage": ""
}
Son örnek
// 1. SDK'dan defineOneEntry'i içe aktarın ve PROJECT_URL ile APP_TOKEN'ı tanımlayın
import { defineOneEntry } from 'oneentry';
const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';
// 2. Bir API istemcisi oluşturma:
const { Forms, FormData } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});
// 3. OneEntry Platform'dan form verilerini alarak frontend'de bir form oluşturma
const formData = await Forms.getFormByMarker('entity');
// 4. Form gönderimi için ek ayarları alın
const moduleFormConfig = formData?.moduleFormConfigs?.[0];
// 5. Varlık türü niteliğinin öğelerinden birini seçin
const fieldsData = [
{
marker: 'entity',
type: 'entity',
value: [
1,
],
},
];
// 6. Form verilerini FormData.postFormsData() ile gönderin
let response = await FormData.postFormsData({
formIdentifier: 'entity',
formData: fieldsData,
formModuleConfigId: moduleFormConfig?.id || 0,
moduleEntityIdentifier:
moduleFormConfig?.entityIdentifiers?.[0]?.id || '',
replayTo: null,
status: 'sent',
});
// console.log(response);