
# REST {/* #rest */}

Platform API belirteci oluşturmak için [API ile bağlanma](/docs/tr/connect-api) bölümünden başlayın. Herkese açık REST temel URL'si `https://reconstruct.dev/api/v1/platform` şeklindedir. Aşağıdaki yollar bu URL'ye göredir.

Platform türlerini ve ortamları `GET /capture-options` ile keşfedin; kimliklerini sabit kodlamayın. Katalog platform seçenekleri platform türü (`desktop`/`mobile`) için `view`, ortamı için `implementation` kullanır. Masaüstü `web`, `web-extension`, `macos`, `windows`, `linux`; mobil `web`, `ios`, `android` destekler. Veri istemeden önce her seçeneğin `captured` bayrağını kontrol edin. MCP'de bu alanlar `platform` ve `environment` olarak adlandırılır; MCP sayfasının `view` alanı tam kaydedilmiş cihaz profili anahtarıdır. [MCP seçimi](/docs/tr/mcp-tools) bölümüne bakın.

Her istekte `Authorization: Bearer <token>` gönderin. Katalog uç noktaları şunlardır:

| Yöntem ve yol | Amaç |
|---|---|
| `GET /catalogs?pageSize=10&pageToken=...` | Katalogları listeleyin. `pageSize` ve `pageToken` isteğe bağlıdır. |
| `GET /capture-options` | Platform türü kimlikleri, etiketler, ortam seçenekleri, varsayılanlar ve gönderim için `requestPlatforms` dahil desteklenen seçenekler. Kimlik doğrulama veya kullanım ölçümü yoktur; yakalama içeriği içermez. |
| `GET /catalogs/{catalogId}?version=...` | Yayımlanmış kataloğun ekranlarını, platformlarını, dillerini ve sürümlerini okuyun. |
| `GET /catalogs/{catalogId}/insights?locale=en&view=desktop&implementation=web` | Yayımlanmış sürümün teknolojilerini, işleme bilgilerini, yazı tipi ailelerini, metin stillerini, medya varlıklarını ve renk temalarını okuyun. |

JSON yanıtı camelCase alan adları kullanır. `GET /catalogs`, `catalogs` ve başka sonuçlar varsa `nextPageToken` döndürür. Bu belirteci sonraki istekte `pageToken` olarak geçirin. Katalog ayrıntısı `catalogId`, `name`, `kind` ve `description` içerir.

`locale`, `view` ve `implementation` isteğe bağlıdır. `view`, `desktop` veya `mobile`; `implementation`, `web`, `web-extension`, `windows`, `macos`, `linux`, `ios` veya `android` kabul eder. Katalog ayrıntıları kullanılabilir birleşimleri `platforms[]` içinde döndürür; ekranlar kendi `implementation` değerlerini taşır. Teknoloji, tipografi ve medya bu birleşim ve dil kapsamındadır. `technologyInventory: true`, görünüm bazında algılama eksik olduğunda sürüm düzeyinde teknoloji envanterini belirtir. Öykünülmüş iPhone'daki Web yakalamaları `mobile` + `web` olarak kalır. Eski bir yakalamada sayfa ayrıntısı yoksa yanıt sürüm düzeyindeki yazı tipi ve varlık envanterini kullanır ve `pageCount: 0` döndürür. Varlık bağlantıları özgün kaynaklarını korur. Kaydedilmiş kaynaklar aşağıdaki dosya işlemiyle okunabilir.

## Katalog filtreleri ve sürümler {/* #catalog-filters-and-versions */}

`ListCatalogs`, `query`, `sort` (`newest`, `name-asc`, `name-desc`, `screens`, `versions`), `screens` (`with`/`without`), `versions` (`single`/`multiple`) ve tekrarlanan `platforms`, `technologies`, `renderings`, `categories`, `languages` alanlarını kabul eder. Platform filtre kimlikleri görünüm ve uygulamayı birleştirir; örneğin `desktop:web`. Yanıtın `filters` alanındaki kimlikleri kullanın; aynı filtrenin seçenekleri alternatiftir, farklı filtreler birlikte uygulanır. `nextPageToken` izlerken filtreleri ve sıralamayı değiştirmeyin.

`GetCatalog`, `GetCatalogInsights` ve `GetCatalogFile`, isteğe bağlı `version` kabul eder. Boş değer en son yayımlanan yakalamayı seçer. Katalog ayrıntısı seçili `version` ile yayımlanmış tüm `versions[]` değerlerini döndürür; `latestVersion` ve `latestCapturedAt` yine en yeni yakalamayı tanımlar. Tutarlı veri için seçili sürümü sonraki içgörü ve dosya çağrılarına geçirin. Taslak ve bilinmeyen sürümler 404 döndürür.

İçgörüler ayrıca `section` kabul eder: `tech stack`, `typography`, `colors`, `themes` veya `assets` (tümü için atlayın). `colorThemes[]` adlandırılmış paletler içerir. `platforms[].captured` kullanılabilir platform seçeneklerini tanımlar; `detectedLocales[]` keşfedilen dilleri, `locales[]` ise yakalanmış dilleri içerir.

## Bileşen ölçümleri {/* #component-measurements */}

`componentSizing[]`, yakalanmış ölçümleri anlamsal bileşen türüne göre gruplar. Components sekmesinde bir bileşeni açarak ekran görüntülerini, yakalanmış boyutları, iç boşluğu, köşe yarıçapını, kenarlıkları, gölgeleri ve etkileşim durumlarını inceleyin. Genel kapsayıcılar bileşen ölçümlerine dahil edilmez.

`dimensionContexts[]` sahiplik bağlamı ekler: bileşen türü, CSS özelliği, özgün değer/kısaltma, toplam sayı ve en fazla üç kaynak örneği. Örnekler sayfayı, görünümü, yakalamaya göre yolu, kaynak öğe kimliğini/etiketini/açıklamasını, bilinen üst öğeyi ve en fazla üç doğrudan alt öğeyi tanımlar (`childCount` toplam sayılarını verir). Bunlar o sayfa/görünüm/sürümün ham yakalama kimlikleridir; yeniden numaralanmış MCP katman kimlikleri değildir. Örnek görünümü tam saklanmış anahtardır (örneğin `laptop`); katalog filtre görünümü ise `desktop` veya `mobile` olur. Eksik kimlikler `-1` şeklindedir. Sayılar yalnızca yakalanmış öğeleri kapsar; sayılar veya örnek listeleri sitenin tamamını kapsadığını iddia etmez.

Katalog ölçümleri her bileşenin ayrıntısında sunar. Padding öğenin içinde, margin çevresindedir; margin her zaman komşusuna olan mesafe değildir. Gap değerleri kapsayıcılara aittir; listelenen alt öğeler örnektir, ölçülmüş komşu çiftleri değildir. Boyutlandırma bileşenin kendisini tanımlar. Özgün birimleri ve kısaltmaları koruyun. Ayrı MCP [`get_spacing` ve `get_sizing`](/docs/tr/mcp-tools#component-measurements-with-ownership-context) araçları tek sayfa/görünüm için sayfalı bağlam veya özet sunar.

Fonts sekmesi özgün yazı tipi dosyalarını ZIP olarak indirir; boyut ve dil kullanımı JSON indirmeleri `textStyles[]` ve `fonts[].locales` verilerinden türetilir. Bunlar istemcide oluşturulan dosyalardır, ek `@export` uç noktaları değildir. Keşfedilmiş diller (`detectedLocales`) o dillerin ekran görüntülerinin yakalandığını garanti etmez.

## Depolanmış dosyalar ve dışa aktarımlar {/* #stored-files-and-exports */}

`GET /catalogs/{catalogId}/files/{path}`, JSON `BinaryFileResponse` döndürür: `data` base64 biçimindedir, `contentType` çözümlenen baytları tanımlar. Yollar `screens[]` alanından gelir (`imagePath`, `fullPagePath`, `sectionPaths[]`, `videoPath`, `interactionVideoPath`). Ekranlar eksik yakalamaları `captureLimited` ile işaretler.

Aynı yol, arşivlenmiş özgünler için `@asset/{hash}`, `@font/{hash}` ve `@model/{hash}` kabul eder; hash, özgün kaynak URL'sinin veya veri URL'sinin UTF-8 biçimindeki `SHA-256` özetinin küçük harfli onaltılık gösterimidir. ZIP dışa aktarımları döndürmek için `@export/assets`, `@export/fonts`, `@export/colors`, `@export/screenshots`, `@export/components`, `@export/languages`, `@export/technologies` ve `@export/spacing-sizing` değerlerini de kabul eder. Boşluk/boyut arşivi, seçili sürüm, sayfa sayısı, toplu `dimensions`, `componentSizing` ve bağlamsal `dimensionContexts` içeren `spacing-sizing.json` dosyasını içerir. Seçili yakalamanın dosyaları ve dışa aktarımları için `version` kullanın. Normal JSON yakalama dosyaları bu işlemle sunulmaz.

## Çağıran kullanıcı işlemleri {/* #caller-operations */}

| Yöntem ve yol | Amaç |
|---|---|
| `POST /requests` | `url` ve `subject` ile `requestType: PRODUCT_REQUEST_TYPE_ADD` veya `catalogId` ile `requestType: PRODUCT_REQUEST_TYPE_UPDATE` gönderin. |
| `GET /requests`, `GET /requests/{requestId}` | Çağıranın gönderimlerini sayfalayın; kararları, güvenlik kontrollerini ve yakalama ilerlemesini inceleyin. |
| `GET /me/appearance`, `PUT /me/appearance` | Takma adı okuyun/güncelleyin. |
| `GET /me/avatar`, `PUT /me/avatar`, `DELETE /me/avatar` | Avatarı okuyun, yükleyin (`data` base64 olarak) veya kaldırın. |
| `GET /tokens`, `POST /tokens`, `DELETE /tokens/{id}` | Kişisel belirteçleri yönetin; oluşturma işlemi `name`, `scopes` (`api`, `mcp`) ve `expiresInDays` (1–365) kabul eder. Gizli değer bir kez döndürülür. |
| `GET /me/profile`, `PUT /me/profile` | Hesap profilinizi okuyun/güncelleyin (`profile` nesnesi). |
| `GET /me/credentials`, `GET /me/sessions`, `DELETE /me/sessions/{id}` | Kimlik bilgilerini/oturumları inceleyin ve bir oturumu sonlandırın. |

Hesap, görünüm, avatar ve belirteç yönetimi işlemleri giriş yapmış kullanıcının oturum belirtecini gerektirir; kişisel API belirteçleri bu işlemleri yetkilendirmez. Kataloglar ve istekler `api` kapsamlı kişisel belirteç kabul eder. `WatchCatalogs` ve `WatchRequests` akışları gRPC/gRPC-Web üzerinden kullanılabilir ve REST yolu yoktur.

## Örnekler {/* #examples */}

- [curl](/docs/tr/api/rest/curl)
- [Python](/docs/tr/api/rest/python)
- [C#](/docs/tr/api/rest/csharp)
- [TypeScript](/docs/tr/api/rest/typescript)
- [Go](/docs/tr/api/rest/go)
- [Rust](/docs/tr/api/rest/rust)
- [Java](/docs/tr/api/rest/java)
- [C++](/docs/tr/api/rest/cpp)

Ürün gönderimleri aynı temel URL altında `POST /requests`, `GET /requests` ve `GET /requests/{request_id}` kullanır. `requestType: PRODUCT_REQUEST_TYPE_ADD` için oluşturma, `url` ve `subject` gerektirir; `catalogId` isteğe bağlıdır. `PRODUCT_REQUEST_TYPE_UPDATE` için mevcut `catalogId` verin; sunucu adı ve kaynak URL'sini çözümler. İstekler kalıcı olarak saklanır ve yalnızca sahipleri erişebilir. Yakalama öncesi incelenir, gerekçeyle onaylanabilir veya reddedilebilir. Bilinen güvensiz siteler otomatik reddedilir. REST ve gRPC aynı istek işlemlerini sunar.

## Normalleştirilmiş arayüz verileri {/* #normalized-interface-data */}

[Sahne veri biçimi](/docs/tr/data-format), durumlar, kaynaklar ve kanıtlar dahil platformdan bağımsız arayüz çıktılarını tanımlar. Mevcut normalleştirilmiş dışa aktarım MCP `get_interface_scene` üzerinden alınır; bu katalog API'si ayrı bir Scene işlemi tanımlamaz.
