# Türler

Nesne türleri, Objects modülünün şema yarısıdır. Mağazada hangi içerik türlerinin bulunduğunu ve kayıtlarının hangi şekle sahip olduğunu öğrenmek için bunları alın. Özellik türlerinin tam referansı (yayınlama, adresler ve yerelleştirilmiş değerler dahil) için [Objects kavram sayfasına](./index) bakın.

## GET /v1/api/objects/types

Tüm nesne türlerini, aktif (arşivlenmemiş) özellik tanımlarıyla birlikte, tür adına göre sıralı olarak listeler. Liste sayfalanmaz; response düz bir `data` dizisidir. `objects:read` scope'u gerektirir.

Parametre yoktur.

```bash title="Request"
curl https://api.borkol.com/v1/api/objects/types \
  -H "Authorization: Bearer {api_key}"
```

```javascript title="Request (JS)"
const res = await fetch("https://api.borkol.com/v1/api/objects/types", {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const { data: types } = await res.json();
```

Durum: `200 OK`. Her tür şunları içerir:

| Alan | Tür | Açıklama |
| --- | --- | --- |
| `name` | string | Tekil görüntüleme adı. |
| `plural_name` | string | Çoğul görüntüleme adı. |
| `key` | string | Benzersiz slug. `GET /v1/api/objects/types/{key}/records` çağrısında kullanın. |
| `settings` | object | `{publishable, slug?}`. `publishable`, bu türün kayıtları yayınlanana kadar taslaksa `true`'dur; `slug` (`{source, prefixes}`) yalnızca kayıtların adresi varsa bulunur. Bkz. [Objects kavram sayfası](./index). |
| `properties` | array | Aktif özellik tanımları, her biri `{key, label, type, options, localized, config, is_required, position}`. Arşivlenmiş özellikler dahil edilmez. `localized`, değerin dil başına bir harita olduğunu söyler; `config` repeater alanlarını veya referans türleri için izin verilen kayıt türlerini taşır, aksi halde `null`'dır. |

```json title="Response"
{
  "data": [
    {
      "name": "FAQ",
      "plural_name": "FAQs",
      "key": "faq",
      "settings": {
        "publishable": true,
        "slug": {
          "source": "name",
          "prefixes": { "en": "/faq", "nl": "/veelgestelde-vragen" }
        }
      },
      "properties": [
        {
          "key": "name",
          "label": "Name",
          "type": "text",
          "options": null,
          "localized": true,
          "config": null,
          "is_required": true,
          "position": 0
        },
        {
          "key": "answer",
          "label": "Answer",
          "type": "textarea",
          "options": null,
          "localized": true,
          "config": null,
          "is_required": true,
          "position": 1
        },
        {
          "key": "category",
          "label": "Category",
          "type": "select",
          "options": ["shipping", "returns", "payment"],
          "localized": false,
          "config": null,
          "is_required": false,
          "position": 2
        },
        {
          "key": "steps",
          "label": "Steps",
          "type": "repeater",
          "options": null,
          "localized": false,
          "config": {
            "fields": [
              { "key": "text", "label": "Text", "kind": "text", "required": true, "localized": true, "config": {} }
            ],
            "item_label_field": "text"
          },
          "is_required": false,
          "position": 3
        }
      ]
    }
  ]
}
```

### Hatalar

- `403` `{"error":"Module not enabled: objects"}`: Objects modülü devre dışı olduğunda.
- `403` `{"message":"Invalid ability provided."}`: API anahtarında `objects:read` scope'u olmadığında.
