Unofficial eksisozluk api
ekşisözlük için geliştirilmiş resmi olmayan api.
TLDR sondadir eger dokumantasyonu okumak istemiyorsaniz atlayabilirsiniz.
Not: Dokumantasyondaki port (3000), config dosyasinda kullanilmis default porttur. Eger farkli bir port seciliyse goz onunde bulundurun.
Terminalde sırasıyla şu komutları çalıştırın:
git clone https://github.com/otuva/eksisozluk-api
cd eksisozluk-api
npm i
npm start
Local olarak
npm i eksisozluk-api # install
npx eksisozluk # run
Global Olarak
sudo npm install eksisozluk-api -g # install
eksisozluk # run
npm ile kurup dokumantasyonda bulunan tum fonksiyonlari kullanabilirsiniz. Ornek:
const eksisozluk = require('eksisozluk-api');
eksisozluk.entry.getEntry('1').then( (data) => { console.log(data); } );
eksisozluk.user.getUser('ssg').then( (data) => { console.log(data); } );
eksisozluk.startServer();
site içi arama yapan endpoint.
boslukla ayrilmis birden cok kelime veya tek aranabilir
-
api/index/search/mayonez
-
api/index/search/ketcap mayonez
gibi.
Sayfa parametresi opsiyonel olup diger sayfalari getirmek icin url sonuna /SAYI ekleyebilirsiniz.
GET /api/index/search/:query/:page?
Name | Type | Description |
---|---|---|
query | String |
arama kelimesi/kelimeleri |
page | Number |
optional getirilecek sayfa Default value: 1 |
Example curl:
curl -i http://localhost:3000/api/index/search/2022
Example curl sayfa:
curl -i http://localhost:3000/api/index/search/2022/2
Example python:
import requests as r
req = r.get("http://localhost:3000/api/index/search/2022")
Example axios(js):
req = axios.get("http://localhost:3000/api/index/search/2022").then(...)
Name | Type | Description |
---|---|---|
totalTopicCount | Number |
toplam baslik adeti. |
totalPageCount | Number |
toplam kac sayfa baslik oldugu. |
topics | Object[] |
başlık objelerinin arrayi. |
topics.id | Number |
basligin id'si |
topics.title | String |
basligin ismi |
topics.topicSlug | String |
baslik url slug hali |
topics.topicUrl | String |
basligin full urli |
topics.totalEntryCount | Number |
basliktaki toplam entry sayisi |
{
"totalTopicCount": 52,
"totalPageCount": 2,
"topics": [
{
"id": 6398332,
"title": "ketçap mayonez hardal üçlüsündeki hardalın durumu",
"slug": "/ketcap-mayonez-hardal-uclusundeki-hardalin-durumu--6398332",
"topicUrl": "https://eksisozluk.com/ketcap-mayonez-hardal-uclusundeki-hardalin-durumu--6398332",
"totalEntryCount": 180
},
{
"id": 7110782,
"title": "en iyi ketçap mayonez markası",
"slug": "/en-iyi-ketcap-mayonez-markasi--7110782",
"topicUrl": "https://eksisozluk.com/en-iyi-ketcap-mayonez-markasi--7110782",
"totalEntryCount": 165
},
...
]
}
Name | Type | Description |
---|---|---|
SearchReturnedNoResults | Arama sonucu bos dondu. |
{"error":"Search returned no results"}
Otomatik tamamlama sağlayan endpoint.
Return edilen cevaptaki arraylerin ikisi de bos ise hata dondurur degilse eksi sozlukten alinan cevabi direkt olarak dondurur.
GET /api/index/autocomplete/:query
Name | Type | Description |
---|---|---|
query | String |
aranan kelime/kelimeler |
Example curl:
curl -i http://localhost:3000/api/index/autocomplete/pena
Example python:
import requests as r
req = r.get("http://localhost:3000/api/index/autocomplete/pena")
Example axios(js):
req = axios.get("http://localhost:3000/api/index/autocomplete/pena").then(...)
Name | Type | Description |
---|---|---|
Titles | String[] |
baslik isimlerinin arrayi. |
Query | String |
aranan kelime/ler |
Nicks | String[] |
kullanici nicklerinin arrayi. |
{
"Titles": [
"pena",
"pena (video kanalı)",
"pena'daki aldatan sevgili entry canlandırması",
"inaki pena",
...
],
"Query": "pena",
"Nicks": [
"pena",
"pena gibi kaybolsam",
"pena minik plastik garip nesne"
]
}
Name | Type | Description |
---|---|---|
SearchReturnedNoResults | Arama sonucu bos dondu. |
{"error":"Search returned no results"}
Secilen kategorideki (gündem, tarihte bugun vs.) başlıkları getiren endpoint.
Sayfa parametresi opsiyonel olup diger sayfalari getirmek icin url sonuna /SAYI
ekleyebilirsiniz.
Baslik kategorisinin alabilecegi degerler icin gereken parametrelerin altindaki izin verilen degerlere bakiniz.
Kanallar icin diger endpointi kullaniniz.
GET /api/topic/list/:choice/:page?
Name | Type | Description |
---|---|---|
choice | String |
getirilecek baslik kategorisi Allowed values: "gundem","sorunsal","tarihte-bugun","basiboslar" |
page | Number |
optional getirilecek sayfa Default value: 1 |
Example curl:
curl -i http://localhost:3000/api/topic/list/gundem
Example curl sayfa:
curl -i http://localhost:3000/api/topic/list/gundem/2
Example python:
import requests as r
req = r.get("http://localhost:3000/api/topic/list/gundem")
Example axios(js):
req = axios.get("http://localhost:3000/api/topic/list/gundem").then(...)
Name | Type | Description |
---|---|---|
totalTopicCount | Number |
toplam baslik adeti. |
totalPageCount | Number |
toplam kac sayfa baslik oldugu. |
topics | Object[] |
başlık objelerinin arrayi. |
topics.id | Number |
basligin id'si |
topics.title | String |
basligin ismi |
topics.topicSlug | String |
baslik url slug hali |
topics.topicUrl | String |
basligin full urli |
topics.totalEntryCount | Number |
basliktaki toplam entry sayisi |
{
"totalTopicCount": 299,
"totalPageCount": 6,
"topics": [
{
"id": 7341070,
"title": "sönmüş kireçle yapılan +18 sanat",
"topicSlug": "/sonmus-kirecle-yapilan-18-sanat--7341070?a=popular",
"topicUrl": "https://eksisozluk.com//sonmus-kirecle-yapilan-18-sanat--7341070?a=popular",
"totalEntryCount": 86
},
{
"id": 7340995,
"title": "türkiye ermenistan sınırı mayın temizliği",
"topicSlug": "/turkiye-ermenistan-siniri-mayin-temizligi--7340995?a=popular",
"topicUrl": "https://eksisozluk.com//turkiye-ermenistan-siniri-mayin-temizligi--7340995?a=popular",
"totalEntryCount": 128
},
...
]
}
Name | Type | Description |
---|---|---|
TopicNotFound | Aranan kategori gecerli ama hicbir baslik bulunamadi. |
|
TopicIsInvalid | Gecerli bir kategori degil. |
{
"error": "Topic not found"
}
{
"error": "Topic is invalid"
}
Secilen kanala ait (haber, bilim vs.) başlıkları getiren endpoint.
Sayfa parametresi opsiyonel olup diger sayfalari getirmek icin url sonuna /SAYI
ekleyebilirsiniz.
Kanal kategorisinin alabilecegi degerler icin gereken parametrelerin altindaki izin verilen degerlere bakiniz.
Kanal kategorilerinin turkce karakter icermesine dikkat ediniz. Ornegin 'muzik' kategorisi hata verecekken 'müzik' kategorisi sorunsuz calisacaktir.
GET /api/topic/list/channel/:choice/:page?
Name | Type | Description |
---|---|---|
choice | String |
getirilecek baslik kategorisi Allowed values: "haber","sinema","bilim","eğitim","spoiler","müzik","edebiyat","ekonomi","tarih","yeme-içme","ilişkiler","siyaset","teknoloji","sanat","moda","otomotiv","magazin","ekşi-sözlük","spor","motosiklet","sağlık","oyun","anket","programlama","tv","seyahat","havacılık","troll" |
page | Number |
optional getirilecek sayfa Default value: 1 |
Example curl:
curl -i http://localhost:3000/api/topic/list/channel/haber
Example curl sayfa:
curl -i http://localhost:3000/api/topic/list/channel/haber/2
Example python:
import requests as r
req = r.get("http://localhost:3000/api/topic/list/channel/haber")
Example axios(js):
req = axios.get("http://localhost:3000/api/topic/list/channel/haber").then(...)
Name | Type | Description |
---|---|---|
totalTopicCount | Number |
toplam baslik adeti. |
totalPageCount | Number |
toplam kac sayfa baslik oldugu. |
topics | Object[] |
başlık objelerinin arrayi. |
topics.id | Number |
basligin id'si |
topics.title | String |
basligin ismi |
topics.topicSlug | String |
baslik url slug hali |
topics.topicUrl | String |
basligin full urli |
topics.totalEntryCount | Number |
basliktaki toplam entry sayisi |
{
"totalTopicCount": 150,
"totalPageCount": 3,
"topics": [
{
"id": 7341076,
"title": "aç insanlar varken teleskopa 10 milyar $ harcamak",
"topicSlug": "/ac-insanlar-varken-teleskopa-10-milyar-harcamak--7341076",
"topicUrl": "https://eksisozluk.com//ac-insanlar-varken-teleskopa-10-milyar-harcamak--7341076",
"totalEntryCount": 38
},
{
"id": 116822,
"title": "anksiyete",
"topicSlug": "/anksiyete--116822?day=2022-07-14",
"topicUrl": "https://eksisozluk.com//anksiyete--116822?day=2022-07-14",
"totalEntryCount": 5
},
...
]
}
Name | Type | Description |
---|---|---|
TopicNotFound | Aranan kategori gecerli ama hicbir baslik bulunamadi. |
|
TopicIsInvalid | Gecerli bir kategori degil. |
{
"error": "Topic not found"
}
{
"error": "Topic is invalid"
}
Spesifik başlığı entry'leri ile birlikte getiren endpoint. slug yerine basliğin kendisini birebir yazarsaniz da calisir:
örneğin: http://localhost:3000/api/topic/veda ederken 2020'ye bir not bırak
Full slug ise bu sekil gorunur (baslik--id): pena--31782
Eger baslik slugi full halinde degilse ve config.topic.allowRedirect
true degerine sahipse tam haline yonlendirir.
Ornek: http://localhost:3000/api/topic/insanlık tarihinin en kötü iki senesi 536 ve 537
Son hali: http://localhost:3000/api/topic/insanlik-tarihinin-en-kotu-iki-senesi-536-ve-537--7341301/1
GET /api/topic/:slug/:page?
Name | Type | Description |
---|---|---|
slug | String |
getirilecek baslik |
page | Number |
optional getirilecek sayfa Default value: 1 |
Example curl:
curl -i http://localhost:3000/api/topic/pena
Example curl sayfa:
curl -i http://localhost:3000/api/topic/pena/2
Example python:
import requests as r
req = r.get("http://localhost:3000/api/topic/pena")
Example axios(js):
req = axios.get("http://localhost:3000/api/topic/pena").then(...)
Name | Type | Description |
---|---|---|
topicID | Number |
basligin idsi. |
disambiguations | Object[] |
farkli anlamlardaki basliklar. |
disambiguations.slug | String |
farkli basligin slug hali. |
disambiguations.title | String |
farkli basligin ismi. |
title | String |
başlıgin ismi. |
topicSlug | String |
basligin slug hali |
numberOfPages | Number |
basligin sahip oldugu sayfa sayisi |
currentPage | Number |
baslikta o anda incelenen sayfa. (.pager degeri) |
tags | String[] |
basligin tagleri. |
entries | Object[] |
basliktaki entryler. |
entries.id | Number |
entry id'si. |
entries.title | String |
entrynin ait oldugu baslik |
entries.body | String |
entryin icerigi |
entries.favCount | Number |
entryin favori sayisi |
entries.isPinned | Boolean |
entryin pinli olup olmadigi. |
entries.isPinnedOnProfile | Boolean |
entryin profilinde pinli olup olmadigi. |
entries.inEksiSeyler | Boolean |
entryin eksiseyler'de olup olmadigi. |
entries.commentCount | Number |
entryin yorum sayisi. (sorularinizi yanitliyorum'da vs. bulunan) |
entries.aboutAuthor | Object |
entryin yazar bilgileri. |
entries.aboutAuthor.author | String |
yazarin nicki. |
entries.aboutAuthor.authorProfilePicture | String |
yazarin profil resmi. |
entries.aboutDateTime | Object |
entryin tarih bilgileri. |
entries.aboutDateTime.createdAtDate | String |
entryin olusturulma tarihi. |
entries.aboutDateTime.createdAtTime | String |
entryin olusturulma saati. |
entries.aboutDateTime.updatedAtDate | String |
entryin guncellenme tarihi. |
entries.aboutDateTime.updatedAtTime | String |
entryin guncellenme saati. |
{
"topicID": 31872,
"disambiguations": [
{
"slug": "/?q=c%20%28programlama%20dili%29",
"title": "c (programlama dili)"
},
{
"slug": "/?q=c%20%28s%c3%b6zl%c3%bck%20yazar%c4%b1%29",
"title": "c (sözlük yazarı)"
}
],
"title": "c",
"topicSlug": "c--31872",
"numberOfPages": 18,
"currentPage": 1,
"tags": [
"programlama",
"edebiyat"
],
"entries": [
{
"id": 1062,
"title": "c",
"body": "yıllar yılı ortamlarda şöyle yada böyle muhabbetini eden bir takım insanlara dönüp garip garip bakmamızı sağlayan,<br>sonrada \"evime gideyim biraz oyun bezeyim, bunlara benzemeyeyim dedirten.\" iştah açıcı, sivilce yapıcı,anti-sosyalite muamması.",
"favCount": 4,
"isPinned": false,
"isPinnedOnProfile": false,
"inEksiSeyler": false,
"commentCount": 0,
"aboutAuthor": {
"author": "otisabi",
"authorProfilePicture": "https://ekstat.com/img/default-profile-picture-light.svg"
},
"aboutDateTime": {
"createdAtDate": "05.03.1999",
"createdAtTime": null,
"updatedAtDate": null,
"updatedAtTime": null
}
},
{
"id": 172152,
"title": "c",
"body": "alfabenin 3. harfi.",
"favCount": 3,
"isPinned": false,
"isPinnedOnProfile": false,
"inEksiSeyler": false,
"commentCount": 0,
"aboutAuthor": {
"author": "body",
"authorProfilePicture": "https://ekstat.com/img/default-profile-picture-light.svg"
},
"aboutDateTime": {
"createdAtDate": "26.05.2000",
"createdAtTime": "01:06",
"updatedAtDate": null,
"updatedAtTime": null
}
},
...
]
}
Name | Type | Description |
---|---|---|
RequestFailedWithStatusCode404 | Baslik bulunamadi. |
{
"error": "Request failed with status code 404"
}
debeleri getiren endpoint. debe'deki tüm entry'lerin bilgileri döner.
GET /api/index/debe
Example curl:
curl -i http://localhost:3000/api/index/debe
Example python:
import requests as r
req = r.get("http://localhost:3000/api/index/debe")
Example axios(js):
req = axios.get("http://localhost:3000/api/index/debe").then(...)
Name | Type | Description |
---|---|---|
info | Object |
debe bilgileri |
info.date | String |
debe tarihi. |
info.entryCount | Number |
debe icindeki entry sayisi. |
entries | Object[] |
debe icindeki entryler. |
entries.id | Number |
entry id'si. |
entries.slug | String |
entryin slug'i. |
entries.title | String |
entryin basligi. |
{
"info": {
"date": "2022-07-15",
"entryCount": 45
},
"entries": [
{
"id": 139983585,
"slug": "/entry/139983585",
"title": "fazıl say"
},
{
"id": 139971232,
"slug": "/entry/139971232",
"title": "14 temmuz 2022 datça kundakçısının açıklamaları"
},
...
]
}
entry no'su ile entry getiren endpoint.
GET /api/entry/:id
Name | Type | Description |
---|---|---|
id | Number |
entry no'su. |
Example curl:
curl -i http://localhost:3000/api/entry/139983585
Example python:
import requests as r
req = r.get("http://localhost:3000/api/entry/139983585")
Example axios(js):
req = axios.get("http://localhost:3000/api/entry/139983585").then(...)
Name | Type | Description |
---|---|---|
id | Number |
entry id'si. |
title | String |
entrynin ait oldugu baslik |
body | String |
entryin icerigi |
favCount | Number |
entryin favori sayisi |
isPinned | Boolean |
entryin pinli olup olmadigi. |
isPinnedOnProfile | Boolean |
entryin profilinde pinli olup olmadigi. |
inEksiSeyler | Boolean |
entryin eksiseyler'de olup olmadigi. |
commentCount | Number |
entryin yorum sayisi. (sorularinizi yanitliyorum'da vs. bulunan) |
aboutAuthor | Object |
entryin yazar bilgileri. |
aboutAuthor.author | String |
yazarin nicki. |
aboutAuthor.authorProfilePicture | String |
yazarin profil resmi. |
aboutDateTime | Object |
entryin tarih bilgileri. |
aboutDateTime.createdAtDate | String |
entryin olusturulma tarihi. |
aboutDateTime.createdAtTime | String |
entryin olusturulma saati. |
aboutDateTime.updatedAtDate | String |
entryin guncellenme tarihi. |
aboutDateTime.updatedAtTime | String |
entryin guncellenme saati. |
{
"id": 139730148,
"title": "simcity",
"body": "yine internetin karanlık dehlizlerinde gezerken ...",
"favCount": 11,
"isPinned": false,
"isPinnedOnProfile": false,
"inEksiSeyler": true,
"commentCount": 0,
"aboutAuthor": {
"author": "jottar",
"authorProfilePicture": "https://img.ekstat.com/profiles/jottar-637919601690625181.jpg"
},
"aboutDateTime": {
"createdAtDate": "08.07.2022",
"createdAtTime": "11:37",
"updatedAtDate": "16:45",
"updatedAtTime": null
}
}
Name | Type | Description |
---|---|---|
RequestFailedWithStatusCode404 | Entry bulunamadi. |
|
EntryNotFound | Entry getirirken eksi sozluk patlarsa (büyük başarısızlıklar sözkonusu) |
{
"error": "Request failed with status code 404"
}
{
"error": "Entry not found"
}
Tum kanallari getiren endpoint.
¯\_(ツ)_/¯
GET /api/index/channels
Example curl:
curl -i http://localhost:3000/api/index/channels
Example python:
import requests as r
req = r.get("http://localhost:3000/api/index/channels")
Example axios(js):
req = axios.get("http://localhost:3000/api/index/channels").then(...)
Name | Type | Description |
---|---|---|
channels | Object[] |
kanallarin arrayi. |
channels.name | String |
kanalin ismi. |
channels.slug | String |
kanalin url slug hali. |
channels.description | String |
kanalin açiklamasi. |
{
"channels": [
{
"name": "#haber",
"slug": "/basliklar/kanal/haber",
"description": "yurtta ve dünyada olan biten"
},
{
"name": "#sinema",
"slug": "/basliklar/kanal/sinema",
"description": "filmler, yönetmenler, teknikler, yarıda salonu terk etmeler"
},
...
]
}
kullanicinin girdigi entry sayfalarini getiren endpoint.
eger sayfa parametresi verilmezse ilk sayfayi dondurur.
eger ilk sayfa ise ve kullanicinin sabitledigi bir entry varsa entries
arrayindan once pinnedEntry
objesi dondurur. formatin degistigi tek durum budur.
diger sayfalarda ise veya sabitlenen entry yoksa sadece entries
arrayi dondurur. null degeriyle bile olsa pinnedEntry
diye bir bolum direkt yer almaz.
'entries': 'son-entryleri',
'favorites': 'favori-entryleri',
'most-favorited': 'en-cok-favorilenen-entryleri',
'last-voted': 'son-oylananlari',
'weekly': 'bu-hafta-dikkat-cekenleri',
'handicraft': 'el-emegi-goz-nuru',
'most-liked': 'en-begenilenleri',
GET /api/user/:nick/:choice/:page?
Name | Type | Description |
---|---|---|
nick | String |
kullanici nicki |
choice | String |
getirelecek entry sayfasi kategorisi. Allowed values: "entries","favorites","most-favorited","last-voted","weekly","handicraft","most-liked" |
page | Number |
optional getirilecek sayfa Default value: 1 |
Example curl:
curl -i http://localhost:3000/api/user/ssg/entries
Example curl sayfa:
curl -i http://localhost:3000/api/user/ssg/entries/2
Example python:
import requests as r
req = r.get("http://localhost:3000/api/user/ssg/entries")
Example axios(js):
req = axios.get("http://localhost:3000/api/user/ssg/entries").then(...)
Name | Type | Description |
---|---|---|
pinnedEntry | Object |
|
entries | Object[] |
entryleri barindiran array |
entries.id | Number |
entry id'si. |
entries.title | String |
entrynin ait oldugu baslik |
entries.body | String |
entryin icerigi |
entries.favCount | Number |
entryin favori sayisi |
entries.isPinned | Boolean |
entryin pinli olup olmadigi. |
entries.isPinnedOnProfile | Boolean |
entryin profilinde pinli olup olmadigi. |
entries.inEksiSeyler | Boolean |
entryin eksiseyler'de olup olmadigi. |
entries.commentCount | Number |
entryin yorum sayisi. (sorularinizi yanitliyorum'da vs. bulunan) |
entries.aboutAuthor | Object |
entryin yazar bilgileri. |
entries.aboutAuthor.author | String |
yazarin nicki. |
entries.aboutAuthor.authorProfilePicture | String |
yazarin profil resmi. |
entries.aboutDateTime | Object |
entryin tarih bilgileri. |
entries.aboutDateTime.createdAtDate | String |
entryin olusturulma tarihi. |
entries.aboutDateTime.createdAtTime | String |
entryin olusturulma saati. |
entries.aboutDateTime.updatedAtDate | String |
entryin guncellenme tarihi. |
entries.aboutDateTime.updatedAtTime | String |
entryin guncellenme saati. |
{
"entries": [
{
"id": 139962328,
"title": "yazarların favori ressam ve eseri",
"body": "<a class=\"b\" href=\"/?q=albert+bierstadt\">albert bierstadt</a>'ın \"<a rel=\"nofollow noopener\" class=\"url\" target=\"_blank\" href=\"https://twitter.com/esesci/status/927741151469117441?s=20&t=GHkkCtUJz8GNqzwbjNfMLA\" title=\"https://twitter.com/esesci/status/927741151469117441?s=20&t=GHkkCtUJz8GNqzwbjNfMLA\">puget sound on the pacific coast</a>\" eseri çok sevdiklerimden biridir.",
"favCount": 12,
"isPinned": false,
"isPinnedOnProfile": false,
"inEksiSeyler": false,
"commentCount": 0,
"aboutAuthor": {
"author": "ssg",
"authorProfilePicture": "https://img.ekstat.com/profiles/ssg-637802096150637091.jpg"
},
"aboutDateTime": {
"createdAtDate": "14.07.2022",
"createdAtTime": "10:38",
"updatedAtDate": null,
"updatedAtTime": null
}
},
...
]
}
Name | Type | Description |
---|---|---|
PageNotFound | sayfa bulunamadi. |
{
"error": "Page not found"
}
nick ile kullanici gorsellerini getiren endpoint.
GET /api/user/:nick/images
Name | Type | Description |
---|---|---|
nick | String |
kullanici nicki |
Example curl:
curl -i http://localhost:3000/api/user/ssg/images
Example python:
import requests as r
req = r.get("http://localhost:3000/api/user/ssg/images")
Example axios(js):
req = axios.get("http://localhost:3000/api/user/ssg/images").then(...)
Name | Type | Description |
---|---|---|
images | Object[] |
gorsel arrayi. |
images.slug | String |
gorselin slug hali. |
images.imageURL | String |
gorselin full linki. |
images.date | Object |
gorselin tarihi. |
images.date.year | String |
gorselin tarihi yil. |
images.date.month | String |
gorselin tarihi ay. |
images.date.day | String |
gorselin tarihi gun. |
{
"images": [
{
"slug": "/img/x5zal9ig",
"imageURL": "'https://cdn.eksisozluk.com/2020/4/15/x/x5zal9ig.jpg'",
"date": {
"year": "2020",
"month": "4",
"day": "15"
}
},
{
"slug": "/img/at7lo6r6",
"imageURL": "'https://cdn.eksisozluk.com/2020/7/1/a/at7lo6r6.png'",
"date": {
"year": "2020",
"month": "7",
"day": "1"
}
},
...
]
}
nick ile kullanıcı bilgisi getiren endpoint.
Bu endpoint kullanicinin son entrylerini gostermek icin otomatik olarak page endpoini de cagirir.
Devre disi birakmak icin config.user.autoRetrieveLastEntries
false
yapilabilir. Eger yapilirsa lastEntries
kismi dondurulmez.
GET /api/user/:nick
Name | Type | Description |
---|---|---|
nick | String |
kullanici nicki |
Example curl:
curl -i http://localhost:3000/api/user/ssg
Example python:
import requests as r
req = r.get("http://localhost:3000/api/user/ssg")
Example axios(js):
req = axios.get("http://localhost:3000/api/user/ssg").then(...)
Name | Type | Description |
---|---|---|
nick | String |
kullanicinin nicki. |
isUserCaylak | Boolean |
kullanicinin caylak olup olmadigi. |
isUserLanetli | Boolean |
kullanicinin lanetli olup olmadigi. |
isUserLeyla | Boolean |
kullanicinin ucup ucmadigi. |
totalEntryCount | Number |
kullanicinin toplam entry sayisi. |
totalPageCount | Number |
kullanicinin toplam entry sayfa sayisi. |
userFollowingCount | Number |
kullanicinin takip edilen kullanici sayisi. |
userFollowerCount | Number |
kullaniciyi takip eden kullanici sayisi. |
karmaLevel | String |
kullanicinin karma seviyesi. |
pinnedBadges | Object[] |
kullanicinin sergiledigi rozetler. |
pinnedBadges.title | String |
rozetin adi. |
pinnedBadges.imgSrc | String |
rozetin resmi. |
authorProfilePicture | String |
kullanicinin profil resmi. |
lastEntries | Object |
kullanicinin son entryleri. |
lastEntries.pinnedEntry | Object |
kullanicinin profiline sabitlenmis entry |
lastEntries.pinnedEntry.id | Number |
entry id'si. |
lastEntries.pinnedEntry.title | String |
entrynin ait oldugu baslik |
lastEntries.pinnedEntry.body | String |
entryin icerigi |
lastEntries.pinnedEntry.favCount | Number |
entryin favori sayisi |
lastEntries.pinnedEntry.isPinned | Boolean |
entryin pinli olup olmadigi. |
lastEntries.pinnedEntry.isPinnedOnProfile | Boolean |
entryin profilinde pinli olup olmadigi. |
lastEntries.pinnedEntry.inEksiSeyler | Boolean |
entryin eksiseyler'de olup olmadigi. |
lastEntries.pinnedEntry.commentCount | Number |
entryin yorum sayisi. (sorularinizi yanitliyorum'da vs. bulunan) |
lastEntries.pinnedEntry.aboutAuthor | Object |
entryin yazar bilgileri. |
lastEntries.pinnedEntry.aboutAuthor.author | String |
yazarin nicki. |
lastEntries.pinnedEntry.aboutAuthor.authorProfilePicture | String |
yazarin profil resmi. |
lastEntries.pinnedEntry.aboutDateTime | Object |
entryin tarih bilgileri. |
lastEntries.pinnedEntry.aboutDateTime.createdAtDate | String |
entryin olusturulma tarihi. |
lastEntries.pinnedEntry.aboutDateTime.createdAtTime | String |
entryin olusturulma saati. |
lastEntries.pinnedEntry.aboutDateTime.updatedAtDate | String |
entryin guncellenme tarihi. |
lastEntries.pinnedEntry.aboutDateTime.updatedAtTime | String |
entryin guncellenme saati. |
lastEntries.entries | Object[] |
kullanicinin entryleri. |
lastEntries.entries.id | Number |
entry id'si. |
lastEntries.entries.title | String |
entrynin ait oldugu baslik |
lastEntries.entries.body | String |
entryin icerigi |
lastEntries.entries.favCount | Number |
entryin favori sayisi |
lastEntries.entries.isPinned | Boolean |
entryin pinli olup olmadigi. |
lastEntries.entries.isPinnedOnProfile | Boolean |
entryin profilinde pinli olup olmadigi. |
lastEntries.entries.inEksiSeyler | Boolean |
entryin eksiseyler'de olup olmadigi. |
lastEntries.entries.commentCount | Number |
entryin yorum sayisi. (sorularinizi yanitliyorum'da vs. bulunan) |
lastEntries.entries.aboutAuthor | Object |
entryin yazar bilgileri. |
lastEntries.entries.aboutAuthor.author | String |
yazarin nicki. |
lastEntries.entries.aboutAuthor.authorProfilePicture | String |
yazarin profil resmi. |
lastEntries.entries.aboutDateTime | Object |
entryin tarih bilgileri. |
lastEntries.entries.aboutDateTime.createdAtDate | String |
entryin olusturulma tarihi. |
lastEntries.entries.aboutDateTime.createdAtTime | String |
entryin olusturulma saati. |
lastEntries.entries.aboutDateTime.updatedAtDate | String |
entryin guncellenme tarihi. |
lastEntries.entries.aboutDateTime.updatedAtTime | String |
entryin guncellenme saati. |
{
"nick": "ssg",
"isUserCaylak": false,
"isUserLanetli": false,
"isUserLeyla": false,
"totalEntryCount": 51118,
"totalPageCount": 5112,
"userFollowingCount": 452,
"userFollowerCount": 15122,
"karmaLevel": "mangal yürekli rişar (500)",
"pinnedBadges": [
{
"title": "gece kuşu: çoğunlukla gece entry girenler",
"imgSrc": "https://cdn.eksisozluk.com/badges/gece-kusu.png"
},
...
],
"authorProfilePicture": "https://img.ekstat.com/profiles/ssg-637802096150637091.jpg",
"lastEntries": {
"pinnedEntry": {
"id": 112047179,
"title": "street coder",
"body": "başlangıç ve orta seviye programcılar için hem var olan yerleşik kural ve prensipleri sorgulayan hem de bazılarını neden kullanmamız gerektiği konusunda sorgular ve tavsiyeler içeren <a rel=\"nofollow noopener\" class=\"url\" target=\"_blank\" href=\"https://www.manning.com/books/street-coder?utm_source=sedatk&utm_medium=affiliate&utm_campaign=book_kapanoglu_street_10_6_20&a_aid=sedatk&a_bid=72b5d1be\" title=\"https://www.manning.com/books/street-coder?utm_source=sedatk&utm_medium=affiliate&utm_campaign=book_kapanoglu_street_10_6_20&a_aid=sedatk&a_bid=72b5d1be\">kitabım</a>. kitabın amacı farklı yollardan kendine temel bir programlama bilgisi edinmiş geliştiricilere \"sokaklarda\" başlarına neler gelebileceği ve önemsemedikleri bazı konuların kendilerine bu sokak macerasında nasıl yardımcı olacağı konusunda bir perspektif açmak. <a class=\"b\" href=\"/?q=manning+publications\">manning publications</a>'ın <a class=\"b\" href=\"/?q=meap\">meap</a> erken erişim programıyla çıktı. gelen geri bildirimler doğrultusunda hem şekillenecek hem de kitabın gelişimini canlı takip etme imkanı olacak.<br><br><a rel=\"nofollow noopener\" class=\"url\" target=\"_blank\" href=\"https://streetcoder.org/\">https://streetcoder.org/</a>",
"favCount": 221,
"isPinned": false,
"isPinnedOnProfile": true,
"inEksiSeyler": false,
"commentCount": 0,
"aboutAuthor": {
"author": "ssg",
"authorProfilePicture": "https://img.ekstat.com/profiles/ssg-637802096150637091.jpg"
},
"aboutDateTime": {
"createdAtDate": "24.08.2020",
"createdAtTime": "22:49",
"updatedAtDate": "01.09.2021",
"updatedAtTime": "22:35"
}
},
"entries": [
{
"id": 140215313,
"title": "yazarların cips tercihleri",
"body": "(bkz: <a class=\"b\" href=\"/entry/34124398\">kılıçoğlu sineması/#34124398</a>)",
...
}
},
...
]
}
}
Name | Type | Description |
---|---|---|
RequestFailedWithStatusCode404 | kullanici bulunamadi. |
{
"error": "Request failed with status code 404"
}
controller | method | endpoint | örnek url (tıkla) | sayfali örnek url (tıkla) | açıklama |
---|---|---|---|---|---|
topicList | get | api/topic/list/channel/:choice/:page? |
/api/topic/list/channel/haber | /api/topic/list/channel/müzik/2 | kanal başlıklarını getirir |
topicList | get | api/topic/list/:choice/:page? |
/api/topic/list/gundem | /api/topic/list/basiboslar/3 | başlıkları getirir |
topic | get | api/topic/:slug/:page? |
/api/topic/pena | /api/topic/gap year/2 | bir başlığı getirir |
entry | get | api/entry/:id |
/api/entry/1 | bir entry'i getirir | |
page | get | api/user/:nick/:choice/:page? |
/api/user/ssg/entries | /api/user/ssg/most-liked/2 | bir suserin entry sayfalarini getirir |
debe | get | api/index/debe |
/api/index/debe | debe'yi getirir | |
user | get | api/user/:nick |
/api/user/ssg | bir suser'ı getirir | |
search | get | api/index/search/:query/:page? |
/api/index/search/pena | /api/index/search/boston celtics/4 | arama sonucu |
autoComplete | get | api/index/autocomplete/:query |
/api/index/autocomplete/pena | otomatik tamamlama | |
allChannels | get | api/index/channels |
/api/index/channels | kanal kategorileri | |
images | get | api/user/:nick/images |
/api/user/ssg/images | bir suserin gorsellerini getirir |