izmir-open-data-js 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -0
- package/dist/client.d.ts +16 -1
- package/dist/client.js +75 -1
- package/dist/endpoints/eshot.d.ts +118 -0
- package/dist/endpoints/eshot.js +72 -0
- package/dist/endpoints/otopark.d.ts +62 -0
- package/dist/endpoints/otopark.js +15 -0
- package/dist/index.d.ts +6 -0
- package/package.json +8 -2
package/README.md
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* 📊 **Geniş Veri Yelpazesi:** Eczanelerden ulaşım ağlarına kadar birçok veriye erişim.
|
|
15
15
|
* 🔄 **Modern Yapı:** `async/await` desteği ile temiz ve okunabilir kod.
|
|
16
16
|
* 🏗️ **Esnek:** Hem Node.js hem de modern tarayıcı ortamlarında kullanılabilir.
|
|
17
|
+
* 📦 **CKAN Desteği:** Açık veri portalının CKAN API'si üzerinden detaylı veri setlerine erişim.
|
|
17
18
|
|
|
18
19
|
---
|
|
19
20
|
|
|
@@ -51,6 +52,37 @@ async function verileriGetir() {
|
|
|
51
52
|
verileriGetir();
|
|
52
53
|
```
|
|
53
54
|
|
|
55
|
+
### Örnek: ESHOT Hat ve Durak Bilgileri (CKAN)
|
|
56
|
+
|
|
57
|
+
```javascript
|
|
58
|
+
import { IzmirAPI } from 'izmir-open-data-js';
|
|
59
|
+
|
|
60
|
+
const api = new IzmirAPI();
|
|
61
|
+
|
|
62
|
+
async function eshotVerileri() {
|
|
63
|
+
// Tüm ESHOT hatlarını çek
|
|
64
|
+
const hatlar = await api.eshot.getHatlar();
|
|
65
|
+
console.log(`Toplam ${hatlar.total} hat bulundu`);
|
|
66
|
+
|
|
67
|
+
// İlk 10 hattı göster
|
|
68
|
+
hatlar.records.slice(0, 10).forEach(hat => {
|
|
69
|
+
console.log(`Hat ${hat.HAT_NO}: ${hat.HAT_ADI}`);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// Tüm durakları çek (sayfalama ile)
|
|
73
|
+
const duraklar = await api.eshot.getDuraklar(100, 0);
|
|
74
|
+
console.log(`Toplam ${duraklar.total} durak mevcut`);
|
|
75
|
+
|
|
76
|
+
// Otopark ücretlerini çek
|
|
77
|
+
const ucretler = await api.otopark.getUcretler();
|
|
78
|
+
ucretler.records.forEach(otopark => {
|
|
79
|
+
console.log(`${otopark["Otopark / Fiyat"]}: ${otopark["0-2 saat"]} TL (0-2 saat)`);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
eshotVerileri();
|
|
84
|
+
```
|
|
85
|
+
|
|
54
86
|
---
|
|
55
87
|
|
|
56
88
|
## 📋 Tüm Endpoint'ler
|
|
@@ -102,6 +134,11 @@ verileriGetir();
|
|
|
102
134
|
| `getDuragaYaklasanOtobusList(durakId)` | Bir durağa yaklaşan otobüsleri listeler |
|
|
103
135
|
| `getHattinYaklasanOtobusleri(hatId, durakId)` | Bir hattın durağa yaklaşan otobüslerini listeler |
|
|
104
136
|
| `getHatOtobusKonumlari(hatId)` | Hatta ait otobüslerin anlık konum bilgilerini döner |
|
|
137
|
+
| `getHatlar(limit, offset)` | ESHOT hat bilgilerini döner (CKAN) |
|
|
138
|
+
| `getHareketSaatleri(limit, offset)` | Otobüs hareket saatlerini döner (CKAN) |
|
|
139
|
+
| `getDuraklar(limit, offset)` | Tüm ESHOT duraklarını listeler (CKAN) |
|
|
140
|
+
| `getHatGuzergahlari(limit, offset)` | Hat güzergah koordinatlarını döner (CKAN) |
|
|
141
|
+
| `getBaglantiTipleri(limit, offset)` | Diğer ulaşım araçları ile bağlantı tiplerini döner (CKAN) |
|
|
105
142
|
|
|
106
143
|
### 🚲 Ulaşım - BİSİM (`api.bisim`)
|
|
107
144
|
|
|
@@ -155,6 +192,7 @@ verileriGetir();
|
|
|
155
192
|
| Metot | Açıklama |
|
|
156
193
|
| :--- | :--- |
|
|
157
194
|
| `getList()` | Otoparkların doluluk ve konum bilgilerini döner |
|
|
195
|
+
| `getUcretler(limit, offset)` | İzelman otopark ücretlerini döner (CKAN) |
|
|
158
196
|
|
|
159
197
|
### 🚕 Taksi (`api.taksi`)
|
|
160
198
|
|
package/dist/client.d.ts
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
export declare class IzmirClient {
|
|
2
2
|
private readonly baseUrl;
|
|
3
|
-
|
|
3
|
+
private readonly ckanBaseUrl;
|
|
4
|
+
private fetchJsonp;
|
|
5
|
+
constructor(baseUrl?: string, ckanBaseUrl?: string);
|
|
4
6
|
get(path: string): Promise<any>;
|
|
7
|
+
/**
|
|
8
|
+
* CKAN API'den veri çeker.
|
|
9
|
+
* Tarayıcıda JSONP, Node.js'de normal fetch kullanır.
|
|
10
|
+
*/
|
|
11
|
+
getCKAN<T = any>(action: string, params?: Record<string, string | number>): Promise<T>;
|
|
12
|
+
/**
|
|
13
|
+
* JSONP ile CKAN API çağrısı (tarayıcı için)
|
|
14
|
+
*/
|
|
15
|
+
private getCKANWithJsonp;
|
|
16
|
+
/**
|
|
17
|
+
* Normal fetch ile CKAN API çağrısı (Node.js için)
|
|
18
|
+
*/
|
|
19
|
+
private getCKANWithFetch;
|
|
5
20
|
}
|
package/dist/client.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
// Node.js ortamında window yoktur, tarayıcıda JSONP kullanılır
|
|
2
|
+
const isBrowser = typeof window !== 'undefined';
|
|
1
3
|
export class IzmirClient {
|
|
2
|
-
constructor(baseUrl = "https://openapi.izmir.bel.tr/api/") {
|
|
4
|
+
constructor(baseUrl = "https://openapi.izmir.bel.tr/api/", ckanBaseUrl = "https://acikveri.bizizmir.com/api/3/action/") {
|
|
5
|
+
this.fetchJsonp = null;
|
|
3
6
|
this.baseUrl = baseUrl;
|
|
7
|
+
this.ckanBaseUrl = ckanBaseUrl;
|
|
4
8
|
}
|
|
5
9
|
async get(path) {
|
|
6
10
|
const res = await fetch(this.baseUrl + path);
|
|
@@ -9,4 +13,74 @@ export class IzmirClient {
|
|
|
9
13
|
}
|
|
10
14
|
return res.json();
|
|
11
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* CKAN API'den veri çeker.
|
|
18
|
+
* Tarayıcıda JSONP, Node.js'de normal fetch kullanır.
|
|
19
|
+
*/
|
|
20
|
+
async getCKAN(action, params = {}) {
|
|
21
|
+
const queryParams = new URLSearchParams();
|
|
22
|
+
for (const [key, value] of Object.entries(params)) {
|
|
23
|
+
queryParams.append(key, String(value));
|
|
24
|
+
}
|
|
25
|
+
const url = `${this.ckanBaseUrl}${action}?${queryParams.toString()}`;
|
|
26
|
+
if (isBrowser) {
|
|
27
|
+
return this.getCKANWithJsonp(url);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return this.getCKANWithFetch(url);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* JSONP ile CKAN API çağrısı (tarayıcı için)
|
|
35
|
+
*/
|
|
36
|
+
async getCKANWithJsonp(url) {
|
|
37
|
+
try {
|
|
38
|
+
// Lazy load fetch-jsonp
|
|
39
|
+
if (!this.fetchJsonp) {
|
|
40
|
+
const module = await import('fetch-jsonp');
|
|
41
|
+
this.fetchJsonp = module.default;
|
|
42
|
+
}
|
|
43
|
+
const response = await this.fetchJsonp(url, {
|
|
44
|
+
jsonpCallback: 'callback',
|
|
45
|
+
timeout: 10000,
|
|
46
|
+
});
|
|
47
|
+
const data = await response.json();
|
|
48
|
+
if (data.success) {
|
|
49
|
+
return data.result;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
throw new Error(data.error?.message || "API verisi alınamadı");
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
if (error instanceof Error) {
|
|
57
|
+
throw new Error(`JSONP Hatası: ${error.message}`);
|
|
58
|
+
}
|
|
59
|
+
throw new Error("Bilinmeyen JSONP hatası");
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Normal fetch ile CKAN API çağrısı (Node.js için)
|
|
64
|
+
*/
|
|
65
|
+
async getCKANWithFetch(url) {
|
|
66
|
+
try {
|
|
67
|
+
const res = await fetch(url);
|
|
68
|
+
if (!res.ok) {
|
|
69
|
+
throw new Error(`CKAN API response error: ${res.status}`);
|
|
70
|
+
}
|
|
71
|
+
const data = await res.json();
|
|
72
|
+
if (data.success) {
|
|
73
|
+
return data.result;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
throw new Error(data.error?.message || "API verisi alınamadı");
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
if (error instanceof Error) {
|
|
81
|
+
throw new Error(`CKAN Hatası: ${error.message}`);
|
|
82
|
+
}
|
|
83
|
+
throw new Error("Bilinmeyen CKAN hatası");
|
|
84
|
+
}
|
|
85
|
+
}
|
|
12
86
|
}
|
|
@@ -2,6 +2,67 @@ import { IzmirClient } from "../client";
|
|
|
2
2
|
import { DefaultOnemliYer, OnemliYerWrapper } from "../common/types/onemliYer";
|
|
3
3
|
export interface EshotDurak extends DefaultOnemliYer {
|
|
4
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* ESHOT hat bilgisi (CKAN datasından)
|
|
7
|
+
*/
|
|
8
|
+
export interface EshotHat {
|
|
9
|
+
_id: number;
|
|
10
|
+
HAT_NO: number;
|
|
11
|
+
HAT_ADI: string;
|
|
12
|
+
GUZERGAH_ACIKLAMA: string;
|
|
13
|
+
ACIKLAMA: string;
|
|
14
|
+
HAT_BASLANGIC: string;
|
|
15
|
+
HAT_BITIS: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* ESHOT otobüs hareket saati bilgisi (CKAN datasından)
|
|
19
|
+
*/
|
|
20
|
+
export interface EshotHareketSaati {
|
|
21
|
+
_id: number;
|
|
22
|
+
HAT_NO: number;
|
|
23
|
+
TARIFE_ID: number;
|
|
24
|
+
GIDIS_SAATI: string;
|
|
25
|
+
DONUS_SAATI: string;
|
|
26
|
+
SIRA: number;
|
|
27
|
+
GIDIS_ENGELLI_DESTEGI: string;
|
|
28
|
+
DONUS_ENGELLI_DESTEGI: string;
|
|
29
|
+
BISIKLETLI_GIDIS: string;
|
|
30
|
+
BISIKLETLI_DONUS: string;
|
|
31
|
+
GIDIS_ELEKTRIKLI_OTOBUS: string;
|
|
32
|
+
DONUS_ELEKTRIKLI_OTOBUS: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* ESHOT otobüs durağı bilgisi (CKAN datasından)
|
|
36
|
+
*/
|
|
37
|
+
export interface EshotDurakCKAN {
|
|
38
|
+
_id: number;
|
|
39
|
+
DURAK_ID: number;
|
|
40
|
+
DURAK_ADI: string;
|
|
41
|
+
ENLEM: number;
|
|
42
|
+
BOYLAM: number;
|
|
43
|
+
DURAKTAN_GECEN_HATLAR: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* ESHOT hat güzergah noktası bilgisi (CKAN datasından)
|
|
47
|
+
*/
|
|
48
|
+
export interface EshotHatGuzergah {
|
|
49
|
+
_id: number;
|
|
50
|
+
HAT_NO: number;
|
|
51
|
+
/** Güzergah yönü: 1 = Gidiş, 2 = Dönüş */
|
|
52
|
+
YON: number;
|
|
53
|
+
BOYLAM: number;
|
|
54
|
+
ENLEM: number;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* ESHOT bağlantı tipi bilgisi (CKAN datasından)
|
|
58
|
+
* Otobüs hatlarının diğer ulaşım araçları ile bağlantı tipleri
|
|
59
|
+
*/
|
|
60
|
+
export interface EshotBaglantiTipi {
|
|
61
|
+
_id: number;
|
|
62
|
+
BAGLANTI_TIP_ID: number;
|
|
63
|
+
/** Bağlantı tipi adı (METRO, IZBAN, VAPUR, TRAMVAY, vb.) */
|
|
64
|
+
BAGLANTI_TIPI: string;
|
|
65
|
+
}
|
|
5
66
|
/**
|
|
6
67
|
* Durağa yaklaşan otobüs bilgisi
|
|
7
68
|
*/
|
|
@@ -23,7 +84,64 @@ export interface HatOtobusKonumlariResponse {
|
|
|
23
84
|
HataMesaj: string;
|
|
24
85
|
HatOtobusKonumlari: YaklasanOtobus[];
|
|
25
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* CKAN datastore_search response tipi
|
|
89
|
+
*/
|
|
90
|
+
export interface CKANDatastoreResponse<T> {
|
|
91
|
+
include_total: boolean;
|
|
92
|
+
resource_id: string;
|
|
93
|
+
fields: {
|
|
94
|
+
type: string;
|
|
95
|
+
id: string;
|
|
96
|
+
}[];
|
|
97
|
+
records_format: string;
|
|
98
|
+
records: T[];
|
|
99
|
+
limit: number;
|
|
100
|
+
total: number;
|
|
101
|
+
}
|
|
26
102
|
export declare function eshot(client: IzmirClient): {
|
|
103
|
+
/**
|
|
104
|
+
* ESHOT hatlarının listesini içeren web servisi (CKAN).
|
|
105
|
+
*
|
|
106
|
+
* Kaynak: https://acikveri.bizizmir.com/dataset/eshot-hat-bilgileri
|
|
107
|
+
* @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
|
|
108
|
+
* @param offset Atlanacak kayıt sayısı (sayfalama için)
|
|
109
|
+
*/
|
|
110
|
+
getHatlar(limit?: number, offset?: number): Promise<CKANDatastoreResponse<EshotHat>>;
|
|
111
|
+
/**
|
|
112
|
+
* ESHOT otobüs hareket saatlerini içeren web servisi (CKAN).
|
|
113
|
+
*
|
|
114
|
+
* Kaynak: https://acikveri.bizizmir.com/dataset/eshot-otobus-hareket-saatleri
|
|
115
|
+
* @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
|
|
116
|
+
* @param offset Atlanacak kayıt sayısı (sayfalama için)
|
|
117
|
+
*/
|
|
118
|
+
getHareketSaatleri(limit?: number, offset?: number): Promise<CKANDatastoreResponse<EshotHareketSaati>>;
|
|
119
|
+
/**
|
|
120
|
+
* ESHOT otobüs duraklarının listesini içeren web servisi (CKAN).
|
|
121
|
+
*
|
|
122
|
+
* Kaynak: https://acikveri.bizizmir.com/dataset/eshot-duraklari
|
|
123
|
+
* @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
|
|
124
|
+
* @param offset Atlanacak kayıt sayısı (sayfalama için)
|
|
125
|
+
*/
|
|
126
|
+
getDuraklar(limit?: number, offset?: number): Promise<CKANDatastoreResponse<EshotDurakCKAN>>;
|
|
127
|
+
/**
|
|
128
|
+
* ESHOT hat güzergahlarını içeren web servisi (CKAN).
|
|
129
|
+
* Her hat için gidiş (YON=1) ve dönüş (YON=2) koordinat noktalarını içerir.
|
|
130
|
+
*
|
|
131
|
+
* Kaynak: https://acikveri.bizizmir.com/dataset/eshot-hat-guzergahlari
|
|
132
|
+
* @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
|
|
133
|
+
* @param offset Atlanacak kayıt sayısı (sayfalama için)
|
|
134
|
+
*/
|
|
135
|
+
getHatGuzergahlari(limit?: number, offset?: number): Promise<CKANDatastoreResponse<EshotHatGuzergah>>;
|
|
136
|
+
/**
|
|
137
|
+
* Otobüs hatlarının diğer ulaşım araçları ile bağlantı tiplerini içeren web servisi (CKAN).
|
|
138
|
+
* Metro, İzban, Vapur, Tramvay gibi bağlantı tiplerini listeler.
|
|
139
|
+
*
|
|
140
|
+
* Kaynak: https://acikveri.bizizmir.com/dataset/otobus-hatlarinin-diger-ulasim-araclari-ile-baglanti-tipleri
|
|
141
|
+
* @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
|
|
142
|
+
* @param offset Atlanacak kayıt sayısı (sayfalama için)
|
|
143
|
+
*/
|
|
144
|
+
getBaglantiTipleri(limit?: number, offset?: number): Promise<CKANDatastoreResponse<EshotBaglantiTipi>>;
|
|
27
145
|
/**
|
|
28
146
|
* ESHOT duraklarının konum, isim ve diğer bilgilerini içeren web servisi.
|
|
29
147
|
*
|
package/dist/endpoints/eshot.js
CHANGED
|
@@ -1,5 +1,77 @@
|
|
|
1
1
|
export function eshot(client) {
|
|
2
2
|
return {
|
|
3
|
+
/**
|
|
4
|
+
* ESHOT hatlarının listesini içeren web servisi (CKAN).
|
|
5
|
+
*
|
|
6
|
+
* Kaynak: https://acikveri.bizizmir.com/dataset/eshot-hat-bilgileri
|
|
7
|
+
* @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
|
|
8
|
+
* @param offset Atlanacak kayıt sayısı (sayfalama için)
|
|
9
|
+
*/
|
|
10
|
+
getHatlar(limit = 100, offset = 0) {
|
|
11
|
+
return client.getCKAN('datastore_search', {
|
|
12
|
+
resource_id: 'bd6c84f8-49ba-4cf4-81f8-81a0fbb5caa3',
|
|
13
|
+
limit,
|
|
14
|
+
offset
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
/**
|
|
18
|
+
* ESHOT otobüs hareket saatlerini içeren web servisi (CKAN).
|
|
19
|
+
*
|
|
20
|
+
* Kaynak: https://acikveri.bizizmir.com/dataset/eshot-otobus-hareket-saatleri
|
|
21
|
+
* @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
|
|
22
|
+
* @param offset Atlanacak kayıt sayısı (sayfalama için)
|
|
23
|
+
*/
|
|
24
|
+
getHareketSaatleri(limit = 100, offset = 0) {
|
|
25
|
+
return client.getCKAN('datastore_search', {
|
|
26
|
+
resource_id: 'c6fa6046-f755-47d7-b69e-db6bb06a8b5a',
|
|
27
|
+
limit,
|
|
28
|
+
offset
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
/**
|
|
32
|
+
* ESHOT otobüs duraklarının listesini içeren web servisi (CKAN).
|
|
33
|
+
*
|
|
34
|
+
* Kaynak: https://acikveri.bizizmir.com/dataset/eshot-duraklari
|
|
35
|
+
* @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
|
|
36
|
+
* @param offset Atlanacak kayıt sayısı (sayfalama için)
|
|
37
|
+
*/
|
|
38
|
+
getDuraklar(limit = 100, offset = 0) {
|
|
39
|
+
return client.getCKAN('datastore_search', {
|
|
40
|
+
resource_id: '0c791266-a2e4-4f14-82b8-9a9b102fbf94',
|
|
41
|
+
limit,
|
|
42
|
+
offset
|
|
43
|
+
});
|
|
44
|
+
},
|
|
45
|
+
/**
|
|
46
|
+
* ESHOT hat güzergahlarını içeren web servisi (CKAN).
|
|
47
|
+
* Her hat için gidiş (YON=1) ve dönüş (YON=2) koordinat noktalarını içerir.
|
|
48
|
+
*
|
|
49
|
+
* Kaynak: https://acikveri.bizizmir.com/dataset/eshot-hat-guzergahlari
|
|
50
|
+
* @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
|
|
51
|
+
* @param offset Atlanacak kayıt sayısı (sayfalama için)
|
|
52
|
+
*/
|
|
53
|
+
getHatGuzergahlari(limit = 100, offset = 0) {
|
|
54
|
+
return client.getCKAN('datastore_search', {
|
|
55
|
+
resource_id: '543f2249-c734-48e4-8739-72efbbfc843c',
|
|
56
|
+
limit,
|
|
57
|
+
offset
|
|
58
|
+
});
|
|
59
|
+
},
|
|
60
|
+
/**
|
|
61
|
+
* Otobüs hatlarının diğer ulaşım araçları ile bağlantı tiplerini içeren web servisi (CKAN).
|
|
62
|
+
* Metro, İzban, Vapur, Tramvay gibi bağlantı tiplerini listeler.
|
|
63
|
+
*
|
|
64
|
+
* Kaynak: https://acikveri.bizizmir.com/dataset/otobus-hatlarinin-diger-ulasim-araclari-ile-baglanti-tipleri
|
|
65
|
+
* @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
|
|
66
|
+
* @param offset Atlanacak kayıt sayısı (sayfalama için)
|
|
67
|
+
*/
|
|
68
|
+
getBaglantiTipleri(limit = 100, offset = 0) {
|
|
69
|
+
return client.getCKAN('datastore_search', {
|
|
70
|
+
resource_id: 'c228da75-adfd-422a-a480-2a4c7ffa7586',
|
|
71
|
+
limit,
|
|
72
|
+
offset
|
|
73
|
+
});
|
|
74
|
+
},
|
|
3
75
|
/**
|
|
4
76
|
* ESHOT duraklarının konum, isim ve diğer bilgilerini içeren web servisi.
|
|
5
77
|
*
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IzmirClient } from "../client";
|
|
2
|
+
import { CKANDatastoreResponse } from "./eshot";
|
|
2
3
|
export interface OtoparkBilgisi {
|
|
3
4
|
ufid: string;
|
|
4
5
|
name: string;
|
|
@@ -44,6 +45,58 @@ export interface OtoparkBilgisi {
|
|
|
44
45
|
cctv: boolean;
|
|
45
46
|
};
|
|
46
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* İzelman otopark ücret bilgisi (CKAN datasından)
|
|
50
|
+
*/
|
|
51
|
+
export interface OtoparkUcreti {
|
|
52
|
+
_id: number;
|
|
53
|
+
/** Otopark adı */
|
|
54
|
+
"Otopark / Fiyat": string;
|
|
55
|
+
/** 0-1 saat ücreti */
|
|
56
|
+
"0-1 Saat": number | null;
|
|
57
|
+
/** 0-2 saat ücreti */
|
|
58
|
+
"0-2 saat": number | null;
|
|
59
|
+
/** 2-4 saat ücreti */
|
|
60
|
+
"2-4 saat": number | null;
|
|
61
|
+
/** 4-6 saat ücreti */
|
|
62
|
+
"4-6 saat": number | null;
|
|
63
|
+
/** 0-3 saat ücreti */
|
|
64
|
+
"0-3 saat": string | null;
|
|
65
|
+
/** 0-6 saat ücreti */
|
|
66
|
+
"0-6 saat": number | null;
|
|
67
|
+
/** 3-6 saat ücreti */
|
|
68
|
+
"3-6 saat": string | null;
|
|
69
|
+
/** 6-12 saat ücreti */
|
|
70
|
+
"6-12 saat": number | null;
|
|
71
|
+
/** 1-12 saat ücreti */
|
|
72
|
+
"1-12 saat": number | null;
|
|
73
|
+
/** 0-12 saat ücreti */
|
|
74
|
+
"0-12 saat": number | null;
|
|
75
|
+
/** 12-24 saat ücreti */
|
|
76
|
+
"12-24 saat": number | null;
|
|
77
|
+
/** 0-24 saat ücreti */
|
|
78
|
+
"0-24 saat": number | null;
|
|
79
|
+
/** 0-12 saat motosiklet ücreti */
|
|
80
|
+
"0-12 Saat(Motosiklet )": number | null;
|
|
81
|
+
/** 12-24 saat motosiklet ücreti */
|
|
82
|
+
"12-24 Saat(Motosiklet )": number | null;
|
|
83
|
+
/** 0-24 saat motosiklet ücreti */
|
|
84
|
+
"0-24 Saat(Motosiklet )": number | null;
|
|
85
|
+
/** Kayıp bilet ücreti */
|
|
86
|
+
"Kayıp Bilet": number | null;
|
|
87
|
+
/** Aylık abone ücreti */
|
|
88
|
+
"Aylık Abone Ücreti": number | null;
|
|
89
|
+
/** Aylık alan abonelik ücreti */
|
|
90
|
+
"Aylık Alan Abonelik Ücreti": number | null;
|
|
91
|
+
/** Motosiklet aylık abone ücreti */
|
|
92
|
+
"Motosiklet Aylık Abone Ücreti": number | null;
|
|
93
|
+
/** 0-12 saat engelli aracı ücreti */
|
|
94
|
+
"0-12 Saat(Engelli Aracı )": number | null;
|
|
95
|
+
/** 12-24 saat engelli aracı ücreti */
|
|
96
|
+
"12-24 Saat(Engelli Aracı )": number | null;
|
|
97
|
+
/** 0-24 saat engelli aracı ücreti */
|
|
98
|
+
"0-24 Saat(Engelli Aracı )": number | null;
|
|
99
|
+
}
|
|
47
100
|
export declare function otopark(client: IzmirClient): {
|
|
48
101
|
/**
|
|
49
102
|
* Otoparkların konumu, dolu-boş adetleri, çalışma saatleri bilgilerini içeren web servisi.
|
|
@@ -51,4 +104,13 @@ export declare function otopark(client: IzmirClient): {
|
|
|
51
104
|
* Kaynak: https://acikveri.bizizmir.com/dataset/otopark-doluluk-ve-lokasyon-bilgileri
|
|
52
105
|
*/
|
|
53
106
|
getList(): Promise<OtoparkBilgisi[]>;
|
|
107
|
+
/**
|
|
108
|
+
* İzelman otopark ücretlerini içeren web servisi (CKAN).
|
|
109
|
+
* Her otopark için farklı saat dilimleri ve araç tiplerinin ücret bilgilerini içerir.
|
|
110
|
+
*
|
|
111
|
+
* Kaynak: https://acikveri.bizizmir.com/dataset/izelman-otopark-ucretleri
|
|
112
|
+
* @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
|
|
113
|
+
* @param offset Atlanacak kayıt sayısı (sayfalama için)
|
|
114
|
+
*/
|
|
115
|
+
getUcretler(limit?: number, offset?: number): Promise<CKANDatastoreResponse<OtoparkUcreti>>;
|
|
54
116
|
};
|
|
@@ -7,6 +7,21 @@ export function otopark(client) {
|
|
|
7
7
|
*/
|
|
8
8
|
getList() {
|
|
9
9
|
return client.get("izum/otoparklar");
|
|
10
|
+
},
|
|
11
|
+
/**
|
|
12
|
+
* İzelman otopark ücretlerini içeren web servisi (CKAN).
|
|
13
|
+
* Her otopark için farklı saat dilimleri ve araç tiplerinin ücret bilgilerini içerir.
|
|
14
|
+
*
|
|
15
|
+
* Kaynak: https://acikveri.bizizmir.com/dataset/izelman-otopark-ucretleri
|
|
16
|
+
* @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
|
|
17
|
+
* @param offset Atlanacak kayıt sayısı (sayfalama için)
|
|
18
|
+
*/
|
|
19
|
+
getUcretler(limit = 100, offset = 0) {
|
|
20
|
+
return client.getCKAN('datastore_search', {
|
|
21
|
+
resource_id: 'b45d2e9f-f258-476e-a12d-d0ff62471ee0',
|
|
22
|
+
limit,
|
|
23
|
+
offset
|
|
24
|
+
});
|
|
10
25
|
}
|
|
11
26
|
};
|
|
12
27
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -40,6 +40,11 @@ export declare class IzmirAPI {
|
|
|
40
40
|
getGunlukHavaKalitesiOlcumleri(tarih: Date): Promise<import("./endpoints/iklim").HavaKalitesiOlcum[]>;
|
|
41
41
|
};
|
|
42
42
|
eshot: {
|
|
43
|
+
getHatlar(limit?: number, offset?: number): Promise<import("./endpoints/eshot").CKANDatastoreResponse<import("./endpoints/eshot").EshotHat>>;
|
|
44
|
+
getHareketSaatleri(limit?: number, offset?: number): Promise<import("./endpoints/eshot").CKANDatastoreResponse<import("./endpoints/eshot").EshotHareketSaati>>;
|
|
45
|
+
getDuraklar(limit?: number, offset?: number): Promise<import("./endpoints/eshot").CKANDatastoreResponse<import("./endpoints/eshot").EshotDurakCKAN>>;
|
|
46
|
+
getHatGuzergahlari(limit?: number, offset?: number): Promise<import("./endpoints/eshot").CKANDatastoreResponse<import("./endpoints/eshot").EshotHatGuzergah>>;
|
|
47
|
+
getBaglantiTipleri(limit?: number, offset?: number): Promise<import("./endpoints/eshot").CKANDatastoreResponse<import("./endpoints/eshot").EshotBaglantiTipi>>;
|
|
43
48
|
getYakinDurakList(enlem: number, boylam: number): Promise<import("./common/types/onemliYer.js").OnemliYerWrapper<import("./endpoints/eshot").EshotDurak>>;
|
|
44
49
|
getDuragaYaklasanOtobusList(durakId: number): Promise<import("./endpoints/eshot").YaklasanOtobus[]>;
|
|
45
50
|
getHattinYaklasanOtobusleri(hatId: number, durakId: number): Promise<import("./endpoints/eshot").YaklasanOtobus[]>;
|
|
@@ -64,6 +69,7 @@ export declare class IzmirAPI {
|
|
|
64
69
|
};
|
|
65
70
|
otopark: {
|
|
66
71
|
getList(): Promise<import("./endpoints/otopark").OtoparkBilgisi[]>;
|
|
72
|
+
getUcretler(limit?: number, offset?: number): Promise<import("./endpoints/eshot").CKANDatastoreResponse<import("./endpoints/otopark").OtoparkUcreti>>;
|
|
67
73
|
};
|
|
68
74
|
hizmet: {
|
|
69
75
|
getHizmetNoktaList(): Promise<import("./common/types/onemliYer.js").OnemliYerWrapper<import("./endpoints/hizmet").HizmetNoktasi>>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "izmir-open-data-js",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Izmir Open Data API wrapper - İzmir Büyükşehir Belediyesi Açık Veri API'leri için TypeScript/JavaScript kütüphanesi",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -13,7 +13,9 @@
|
|
|
13
13
|
"typescript",
|
|
14
14
|
"eshot",
|
|
15
15
|
"izban",
|
|
16
|
-
"metro"
|
|
16
|
+
"metro",
|
|
17
|
+
"ckan",
|
|
18
|
+
"otopark"
|
|
17
19
|
],
|
|
18
20
|
"author": "Ata",
|
|
19
21
|
"license": "MIT",
|
|
@@ -30,6 +32,7 @@
|
|
|
30
32
|
"dist"
|
|
31
33
|
],
|
|
32
34
|
"devDependencies": {
|
|
35
|
+
"@types/fetch-jsonp": "^1.0.0",
|
|
33
36
|
"@types/node": "^25.4.0",
|
|
34
37
|
"@vitest/coverage-v8": "^3.2.4",
|
|
35
38
|
"@vitest/expect": "^4.0.18",
|
|
@@ -45,5 +48,8 @@
|
|
|
45
48
|
"test:live": "LIVE_API_TESTS=1 vitest run tests/integration/",
|
|
46
49
|
"test:all": "LIVE_API_TESTS=1 vitest run",
|
|
47
50
|
"prepublishOnly": "npm run build"
|
|
51
|
+
},
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"fetch-jsonp": "^1.4.0"
|
|
48
54
|
}
|
|
49
55
|
}
|