İçeriğe geç

İstemci ve tip üretimi

Public API’nin tam sözleşmesi OpenAPI 3.1 olarak yayınlanır:

Sözleşme yalnızca bu dokümandaki 7 public işlemi içerir. Türkçe açıklamalar, örnekler ve araç tanımı biçiminin ayrıntılı JSON Schema’sı dahildir.

openapi-typescript ile tipleri tek komutla üretin:

Terminal window
npx openapi-typescript https://api.mirac-ozdemir.com/openapi.json -o src/api/schema.d.ts

Üretilen tipleri, tip güvenli bir fetch sarmalayıcısıyla (openapi-fetch) kullanın:

import createClient from 'openapi-fetch';
import type { paths } from './api/schema';
const client = createClient<paths>({ baseUrl: 'https://api.mirac-ozdemir.com' });
const { data, error } = await client.POST('/v1/public/tools/by-key/{key}/calculate', {
params: { path: { key: 'kdv' } },
body: { inputs: { amount: '1000', mode: 'exclusive', vatRateOption: 'standard' } },
});
if (error) throw new Error(error.error.code);
console.log(data.data.result);

Sözleşme standart OpenAPI olduğu için OpenAPI Generator veya benzeri araçlar çalışır:

Terminal window
npx @openapitools/openapi-generator-cli generate -i https://api.mirac-ozdemir.com/openapi.json -g python -o ./mo-client

Üretilen istemcilerde ondalık alanlar string tipindedir; bunları dilinizin ondalık türüne (Decimal, decimal, BigDecimal) kendiniz çevirin.

OpenAPI adresini doğrudan içe aktarabilirsiniz:

  • Postman: Import → Link → https://api.mirac-ozdemir.com/openapi.json.
  • Insomnia: Create → Import → From URL.
  • Bruno: Import collection → OpenAPI.
  • Swagger UI / Redoc: adresi doğrudan verin; CORS açıktır.

Her operasyonun örnek istek ve yanıtları sözleşmede hazırdır. Tarayıcıda denemek için Oyun alanını da kullanabilirsiniz.