API güncelle
PATCH /v1/apis/{api_id} · izin apis:write
API'yi JSON birleştirme yamasıyla günceller (RFC 7396, application/merge-patch+json): gönderdiğiniz alanlar değişir, göndermedikleriniz kalır. If-Match zorunludur. key ve identifier oluşturulduktan sonra değişmez; sistem API'si değiştirilemez. Hiçbir şeyi değiştirmeyen yama yazma yapmaz ve sürümü korur.
İstek
| Parametre | Yer | Açıklama |
|---|---|---|
api_id |
yol | API kimliği. |
If-Match |
başlık | Son okumadaki ETag (zorunlu). |
Gövde: aşağıdaki yazılabilir alanlardan herhangi biri (hepsi isteğe bağlı). Bir alan null ile kaldırılamaz.
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
key |
string | hayır | Kararlı yapılandırma anahtarı, ^[a-z0-9_-]{1,64}$. Değişmez. |
identifier |
string | hayır | Jeton kitlesi: https URL (sorgu ve parça yok) ya da urn:<nid>:<nss>; kanonik biçimde saklanır. Değişmez. urn:idp: ad alanı ayrılmıştır. |
name |
string | hayır | 1-128 karakter. |
access_token_lifetime_s |
integer | hayır | 60-86400. Varsayılan 3600 (mcp_profile ile 600). |
token_format |
string | hayır | jwt (varsayılan) ya da opaque. |
rbac_mode |
string | hayır | Rol ve izinlerin jetona yansıması: claims (varsayılan) permissions ve org_permissions ekler; off ikisini de eklemez (org_roles yine eklenir); enforce ikisini ekler ve verilen scope'ları kullanıcının etkin izinleriyle sınırlar. |
allow_offline_access |
boolean | hayır | Varsayılan true. |
require_resource_indicator |
boolean | hayır | Varsayılan false (mcp_profile ile true). |
dpop_required |
boolean | hayır | Varsayılan false. |
mcp_profile |
boolean | hayır | https identifier ve require_resource_indicator: true ister. |
first_party_access |
string | hayır | all (varsayılan) ya da granted_only. |
introspection_applications |
dizi | hayır | Bu API'nin jetonlarını introspection ile sorgulayabilen uygulamalar (app_…), en çok 50, tekrarsız. Yalnız aynı ortamın web ve m2m uygulamaları. Liste bütünüyle değiştirilir; [] listeyi boşaltır, null kabul edilmez. |
Introspection uygulamaları
Introspection ucu (POST <issuer>/oauth2/introspect, RFC 7662) bir erişim jetonu için active: true yanıtını yalnız iki çağırana verir: jetonun verildiği uygulamaya ya da jetonun aud değerindeki API'nin introspection_applications listesindeki uygulamaya. Diğer her çağıran active: false alır; böylece API'ler birbirinin jetonunu sorgulayamaz. Listeye yalnız aynı ortamın gizli uygulamaları (web, m2m) eklenebilir; liste küme olarak saklanır ve kimlik sırasıyla döner. Askıya alınmış uygulama listede kalır ama sorgulayamaz. Sistem API'sinin listesi yazılamaz.
Yanıt
200 OK, yeni ETag ile:
{
"id": "api_01h455vb4pex5vsknk084sn02q",
"key": "orders",
"identifier": "https://api.example.com/orders",
"name": "Orders API",
"is_system": false,
"access_token_lifetime_s": 3600,
"token_format": "jwt",
"rbac_mode": "off",
"allow_offline_access": true,
"require_resource_indicator": false,
"dpop_required": false,
"mcp_profile": false,
"first_party_access": "all",
"introspection_applications": ["app_01h455vb4pex5vsknk084sn02r"],
"created_at": "2026-10-05T12:00:00Z",
"updated_at": "2026-10-05T12:00:00Z"
}
Hatalar
| HTTP | code | Ne zaman |
|---|---|---|
| 400 | unknown_field |
Yama salt okunur ya da bilinmeyen bir alan içeriyor. |
| 404 | not_found |
Bu ortamda böyle bir API yok. |
| 409 | conflict |
API sistem API'si. |
| 412 | precondition_failed |
If-Match güncel sürümle eşleşmiyor. |
| 415 | unsupported_media_type |
İçerik türü application/merge-patch+json değil. |
| 422 | validation_failed |
Bir değer geçersiz, bir alan null yapılmış ya da key / identifier değiştirilmiş. |
| 422 | validation_failed |
introspection_applications öğesi bu ortamda yok (unknown_application), gizli değil (not_confidential), tekrarlı (duplicate) ya da app_… biçiminde değil (invalid_value); işaretçi istekteki indeksi gösterir. |
| 428 | precondition_required |
If-Match yok. |
Örnek
curl -X PATCH https://api.eu.keenauth.com/v1/apis/api_01h455vb4pex5vsknk084sn02q \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/merge-patch+json" \
-H 'If-Match: "1"' \
-d '{"access_token_lifetime_s":900}'