Siteye yazıyı başka bir yazılımdan eklemek, okumak, düzenlemek, yayına almak ve silmek için tek kapı. Her istek kurallara göre denetlenir; hatalar tek seferde, alan alan ve anlaşılır bir dille döner.
GET
POST
PUT
PATCH
DELETE
01
Başlarken
Üç şey yeter: adres, anahtar ve JSON gövde.
Adres
https://www.birseyleryapiyoruz.com/api/articles
Biçim
JSON — istekte Content-Type: application/json, en çok 256 KB
Kimlik
Authorization: Bearer bsy_… (okuma ya da yazma yetkili anahtar)
Yeni yazı
Her zaman taslak girer, sitede görünmez. PATCH {"taslak": false} ile yayına çıkar.
Site
Her yazma isteği site önbelleğini hemen tazeler; değişiklik anında görünür.
Anahtarı platform üretir. Anahtar yalnız üretildiği anda bir kez gösterilir; veritabanında kendisi değil, özeti tutulur.
Her istekte
Authorization: Bearer bsy_TCteCi…
Yetki
İzin verdiği
read
Liste, tek yazı ve /validate.
write
Okumanın hepsi + ekleme, değiştirme, düzenleme, yayına alma, silme.
Anahtar yönetimi (proje klasöründe)
"gelistiriciler-module__GHkoHq__tCom"># Yeni anahtar — yalnız bu sefer gösterilir
npm run api-anahtar -- olustur uretici-1 write "Otomatik yazı üretici""gelistiriciler-module__GHkoHq__tCom"># Anahtarlar: ad, yetki, son kullanım
npm run api-anahtar -- liste
"gelistiriciler-module__GHkoHq__tCom"># Anında kapat (bu anahtarla gelen istekler 403 alır)
npm run api-anahtar -- iptal uretici-1
Anahtar yoksa 401 UNAUTHORIZED, geçersiz ya da iptal edilmişse 403 FORBIDDEN. Anahtar adreste (?key=) kabul edilmez; adresler kayıtlara düşer.
03
Yanıt biçimi
Bütün yanıtlar aynı zarfta gelir. Önce ok alanına bakman yeter.
API'nin senin yerine düzelttikleri (ör. kategori yazımı). Varsa gelir.
error.code
Makinenin okuyacağı kod — §09.
error.fields
Her neden ayrı: field, code, message; gerekiyorsa expected, received, allowed.
Yanıtlar önbelleğe alınmaz (Cache-Control: no-store). Yazı dönen her yanıtta X-Version başlığı vardır — §08.
04
Yazı nesnesi
Gönderdiğin gövde. Yıldızlı alanlar zorunlu; bilmediğimiz her alan ek alan olarak saklanır.
Alan
Tür
Kural
slug *
string
Adres: /yazilar/<slug>. Yalnız a-z 0-9 - (Türkçe harf yok), en çok 60 karakter, benzersiz, değiştirilemez.
baslik *
string
25–60 karakter. Sondaki nokta kendiliğinden kalkar.
ozet *
string
120–200 karakter, tek paragraf. Kartta 3 satır görünür.
tarih *
string
YYYY-AA-GG, gerçek bir gün. Liste yeniden eskiye bu alana göre sıralanır.
kategori *
string
Beş kategoriden biri — §05. Büyük/küçük harf fark etmez.
giris *
string
Bölümlerden önceki giriş, 1–2 paragraf Markdown.
bolumler *
dizi
3–6 öğe, her biri yalnız { baslik, icerik }.
ikon
string
Yazının kendi kategorisinden bir ikon — §05. Boşsa kategorinin varsayılanı.
yazar
string
En çok 60 karakter.
ek alanlar
herhangi
Ad harfle başlar (harf, rakam, _), en çok 20 alan, toplam 8 KB, en çok 3 kat iç içe. Yanıtta ekAlanlar içinde döner.
API'nin eklediği alanlar
Alan
Anlamı
taslak
true: sitede görünmez. Yalnız PATCH ile değişir.
url
Yazının sitedeki adresi.
kelime · okumaDk
Kelime sayısı ve okuma süresi (dakikada 200 kelime).
surum
Her değişiklikte 1 artar — §08.
olusturuldu · guncellendi
ISO tarih.
Gönderilemez:taslak (yalnız PATCH), _id, olusturuldu, guncellendi, kaynak, surum ve eski alanlar arama, bolum, alan, icerik, tur → RESERVED_FIELD.
Senin yerine düzelttiklerimiz
Gereksiz hata çıkmasın diye gövde denetimden önce temizlenir ve yapılan her düzeltme corrections ile bildirilir: kenar boşlukları ve görünmez karakterler silinir, satır sonları birleşir, art arda boş satırlar teke iner; slug ve ikon küçük harfe, kategori doğru yazımına çevrilir ("değişim" → "Değişim", eski ad "Değişmek" → "Değişim"); bölüm başlığının başındaki numara (1. ) kalkar.
05
Kategoriler ve ikonlar
Tek kategori seçilir: yazının ana sorusu hangisine aitse. İkon yalnız anahtar olarak yazılır ve kendi kategorisinden seçilir; ilk ikon varsayılandır.
[CSR]Cesaret
bayrakvarsayılan
merdiven
roket
kivilcim
kapi
ampul
mikrofon
[DYN]Dayanıklılık
nabizvarsayılan
kalkan
capa
pil
fidan
dag
[FRK]Farkındalık
gozvarsayılan
geri-al
buyutec
soru
terazi
kalem
[DGS]Değişim
pusulavarsayılan
dongu
yol-ayrimi
cip
parilti
[VZN]Vizyon
durbunvarsayılan
hedef
kup
grafik
harita
06
İçerik kuralları
Toplam 600–1200 kelime (3–6 dk okuma). Bölüm başlığı 2–6 kelime; numara eklenmez, site numaralar.
Kullanılır
Biçim
Yazımı
Paragraf
boş satırla ayrılır
Vurgu
**kalın** · *italik*
Alıntı
> Tek cümle. — en çok 2
Liste
- madde · 1. adım
Ara başlık
### Başlık
Bağlantı
[metin](https://…)
Kullanılmaz
# / ## başlık — bölüm başlığı ayrı alanda
#### ve daha derin başlık
HTML etiketleri
Görsel 
Tablo ve kod bloğu
http(s):// ile başlamayan bağlantı
Hata, ilgili alan ve satır numarasıyla döner.
Dil ve ton: Türkçe, sade ve samimi; okura "sen" diye seslenir. Kısa cümleler, somut örnek, net bir ana fikir. Reklam dili ve doldurma cümle yok. Konular: girişimcilik, teknoloji, yapay zekâ, yatırım ve sektörden notlar.
07
Uç noktalar
Yedi uç nokta; renkler Branding Kit'in beş alan rengi.
Yöntem
Adres
Ne yapar
GET
/api/articles
Liste (sayfalı, filtreli)
POST
/api/articles
Yeni yazı (taslak)
POST
/api/articles/validate
Yalnız denetle, kaydetme
GET
/api/articles/{slug}
Tek yazı
PUT
/api/articles/{slug}
Tümüyle değiştir
PATCH
/api/articles/{slug}
Kısmi düzenle · yayına al · taslağa çek
DELETE
/api/articles/{slug}
Sil (arşive taşı)
GET/api/articlesokuma yetkisi
Yazıları listele
En yeniden eskiye sıralı. Varsayılan olarak yalnız künye gelir; içerik için include=content.
Parametre
Değerler
Varsayılan
status
all · draft · published
all
category
Ad ya da adres biçimi: Değişim, degisim (eski adlar da)
Yazı taslak olarak girer. Aynı slug’da yazı varsa üzerine yazılmaz.
Gövde (metinler kısaltıldı; gerçek yazı 600–1200 kelime)
{
"slug": "yapay-zekayla-ilk-urunu-cikarmak",
"baslik": "Yapay zekâyla ilk ürünü çıkarmak",
"ozet": "Model seçmek işin en kolay kısmı. Asıl soru hangi sorunu, kimin için, ne kadar iyi çözdüğün…",
"tarih": "2026-10-15",
"kategori": "Değişim",
"ikon": "parilti",
"yazar": "Bir Şeyler Yapıyoruz",
"giris": "Yapay zekâ araçları ürün çıkarmayı hiç olmadığı kadar ucuzlattı. Ama ucuzlayan şey **denemek**…",
"bolumler": [
{ "baslik": "Önce sorun, sonra model", "icerik": "En sık yapılan hata…\n\n> Model değişir; çözdüğün sorun kalır." },
{ "baslik": "İlk sürüm tek iş yapsın", "icerik": "İlk sürümün tek bir işi iyi yapması yeter…\n\n- Birinci soru\n- İkinci soru" },
{ "baslik": "Ölç, sonra büyüt", "icerik": "Kaç kişinin ikinci kez geldiğine bak…" }
],
"kaynakUrl": "https://example.com/kaynak",
"etiketler": ["yapay zekâ", "ürün"]
}
Yazının tamamı yeniden gönderilir; gönderilmeyen isteğe bağlı ve ek alanlar silinir. Gövdede slug yazılmayabilir (adresteki kullanılır). Yayındaki yazı yeniden taslağa döner; yayın kararı yeniden verilir. Oluşturulma tarihi korunur, sürüm artar.