REST
Mulai dari hubungkan melalui API untuk membuat token Platform API. URL dasar REST publik adalah https://reconstruct.dev/api/v1/platform. Rute di bawah relatif terhadap URL itu.
Temukan jenis platform dan lingkungan dengan GET /capture-options; jangan hardcode ID-nya. Opsi platform katalog memakai view untuk jenis platform (desktop/mobile) dan implementation untuk lingkungan. Desktop mendukung web, web-extension, macos, windows, linux; mobile mendukung web, ios, android. Periksa penanda captured tiap opsi sebelum meminta data. Dalam MCP kolom ini bernama platform dan environment; view halaman MCP adalah kunci profil perangkat tersimpan yang tepat. Lihat pemilihan MCP.
Kirim Authorization: Bearer <token> pada setiap permintaan. Endpoint katalog adalah:
| Metode dan jalur | Tujuan |
|---|---|
GET /catalogs?pageSize=10&pageToken=... | Daftar katalog. pageSize dan pageToken opsional. |
GET /capture-options | Opsi yang didukung untuk ID jenis platform, label, lingkungan, default, dan requestPlatforms untuk pengajuan. Tanpa autentikasi atau pengukuran penggunaan; tanpa konten tangkapan. |
GET /catalogs/{catalogId}?version=... | Baca layar, platform, bahasa, dan versi katalog yang diterbitkan. |
GET /catalogs/{catalogId}/insights?locale=en&view=desktop&implementation=web | Baca teknologi, rendering, keluarga font, gaya teks, aset media, dan tema warna dari versi terbitan. |
Respons JSON memakai nama kolom camelCase. GET /catalogs mengembalikan catalogs dan, jika masih ada hasil, nextPageToken. Berikan token itu sebagai pageToken pada permintaan berikutnya. Detail katalog berisi catalogId, name, kind, dan description.
locale, view, dan implementation opsional. view menerima desktop atau mobile; implementation menerima web, web-extension, windows, macos, linux, ios, atau android. Detail katalog mengembalikan kombinasi yang tersedia dalam platforms[]; layar menyertakan implementation masing-masing. Teknologi, tipografi, dan media dibatasi pada kombinasi dan bahasa tersebut. technologyInventory: true mengidentifikasi inventaris teknologi tingkat versi ketika deteksi per tampilan tidak ada. Tangkapan Web pada iPhone emulasi tetap mobile + web. Jika tangkapan lama tidak memiliki detail halaman, respons memakai inventaris font dan aset tingkat versi serta mengembalikan pageCount: 0. Tautan aset mempertahankan sumber asli. Sumber daya tersimpan dapat dibaca melalui operasi berkas di bawah.
Filter dan versi katalog
ListCatalogs menerima query, sort (newest, name-asc, name-desc, screens, versions), screens (with/without), versions (single/multiple), dan platforms, technologies, renderings, categories, languages berulang. ID filter platform menggabungkan view dan implementation, misalnya desktop:web. Gunakan ID dari filters pada respons; opsi dalam satu filter merupakan alternatif, sedangkan filter berbeda digabungkan. Pertahankan filter dan pengurutan saat mengikuti nextPageToken.
GetCatalog, GetCatalogInsights, dan GetCatalogFile menerima version opsional. Kosong memilih tangkapan terbitan terbaru. Detail katalog mengembalikan version terpilih dan semua versions[] terbitan; latestVersion dan latestCapturedAt tetap mengidentifikasi tangkapan terbaru. Berikan versi terpilih pada panggilan insight dan berkas berikutnya agar datanya konsisten. Draf dan versi tidak dikenal mengembalikan 404.
Insight juga menerima section: tech stack, typography, colors, themes, atau assets (hilangkan untuk semua). colorThemes[] berisi palet bernama. platforms[].captured mengidentifikasi opsi platform yang tersedia; detectedLocales[] menyertakan bahasa yang ditemukan, sedangkan locales[] berisi bahasa yang ditangkap.
Pengukuran komponen
componentSizing[] mengelompokkan pengukuran tangkapan menurut jenis komponen semantis. Pada tab Components, buka komponen untuk memeriksa tangkapan layar, ukuran, padding, radius sudut, batas, bayangan, dan status interaksinya yang ditangkap. Kontainer generik dikecualikan dari pengukuran komponen.
dimensionContexts[] menambahkan kepemilikan: jenis komponen, properti CSS, nilai/bentuk singkat asli, jumlah total, dan maksimal tiga sampel sumber. Sampel mengidentifikasi halaman, tampilan, jalur relatif tangkapan, ID/tag/label elemen sumber, induk yang diketahui, dan maksimal tiga anak langsung (childCount memberi jumlah totalnya). Ini ID tangkapan mentah untuk halaman/tampilan/versi tertentu, bukan ID lapisan MCP yang dinomori ulang. Tampilan sampel adalah kunci tersimpan persis (misalnya laptop), sedangkan view filter katalog adalah desktop atau mobile. ID yang tidak ada bernilai -1. Jumlah hanya mencakup elemen yang ditangkap; jumlah maupun daftar contoh tidak mengklaim cakupan seluruh situs.
Katalog menyajikan pengukuran dalam detail setiap komponen. Padding berada di dalam elemen; margin di sekelilingnya, belum tentu jarak ke tetangga. Gap milik kontainer; anak yang terdaftar adalah contoh, bukan pasangan bersebelahan yang diukur. Ukuran menjelaskan komponennya sendiri. Pertahankan satuan dan bentuk singkat asli. Alat MCP terpisah get_spacing dan get_sizing menawarkan konteks dipaginasi atau ringkasan untuk satu halaman/tampilan.
Tab Fonts mengunduh berkas font asli sebagai ZIP; unduhan JSON ukuran dan penggunaan bahasanya diturunkan dari textStyles[] dan fonts[].locales. Itu berkas yang dibuat klien, bukan endpoint @export tambahan. Bahasa yang ditemukan (detectedLocales) tidak menjamin tangkapan layar bahasa tersebut direkam.
Berkas tersimpan dan ekspor
GET /catalogs/{catalogId}/files/{path} mengembalikan JSON BinaryFileResponse: data berupa base64, contentType menjelaskan byte yang didekodekan. Jalur berasal dari screens[] (imagePath, fullPagePath, sectionPaths[], videoPath, interactionVideoPath). Layar menandai tangkapan tidak lengkap dengan captureLimited.
Rute yang sama menerima @asset/{hash}, @font/{hash}, dan @model/{hash} untuk arsip asli; hash adalah SHA-256 dari URL sumber asli atau URL data dalam UTF-8, dinyatakan sebagai heksadesimal huruf kecil. Rute juga menerima @export/assets, @export/fonts, @export/colors, @export/screenshots, @export/components, @export/languages, @export/technologies, dan @export/spacing-sizing untuk mengembalikan ekspor ZIP. Arsip jarak/ukuran berisi spacing-sizing.json dengan versi terpilih, jumlah halaman, agregat dimensions, componentSizing, dan dimensionContexts kontekstual. Gunakan version untuk berkas dan ekspor dari tangkapan terpilih. Berkas JSON tangkapan biasa tidak diekspos oleh operasi ini.
Operasi pemanggil
| Metode dan jalur | Tujuan |
|---|---|
POST /requests | Kirim requestType: PRODUCT_REQUEST_TYPE_ADD dengan url dan subject, atau requestType: PRODUCT_REQUEST_TYPE_UPDATE dengan catalogId. |
GET /requests, GET /requests/{requestId} | Paginasi pengajuan pemanggil dan periksa keputusan, pemeriksaan keamanan, serta progres tangkapan. |
GET /me/appearance, PUT /me/appearance | Baca/perbarui nama panggilan. |
GET /me/avatar, PUT /me/avatar, DELETE /me/avatar | Baca, unggah (data sebagai base64), atau hapus avatar. |
GET /tokens, POST /tokens, DELETE /tokens/{id} | Kelola token pribadi; pembuatan menerima name, scopes (api, mcp), dan expiresInDays (1–365). Rahasia dikembalikan sekali. |
GET /me/profile, PUT /me/profile | Baca/perbarui profil akun Anda (objek profile). |
GET /me/credentials, GET /me/sessions, DELETE /me/sessions/{id} | Periksa kredensial/sesi dan akhiri sesi. |
Operasi akun, tampilan, avatar, dan pengelolaan token memerlukan token sesi pengguna yang masuk; token API pribadi tidak mengizinkan operasi ini. Katalog dan permintaan menerima token pribadi bercakupan api. Aliran WatchCatalogs dan WatchRequests tersedia melalui gRPC/gRPC-Web dan tidak memiliki rute REST.
Contoh
Pengajuan produk memakai POST /requests, GET /requests, dan GET /requests/{request_id} pada URL dasar yang sama. Untuk requestType: PRODUCT_REQUEST_TYPE_ADD, pembuatan memerlukan url dan subject; catalogId opsional. Untuk PRODUCT_REQUEST_TYPE_UPDATE, berikan catalogId yang ada; server menentukan nama dan URL sumber. Permintaan disimpan dan hanya dapat diakses pemiliknya. Permintaan ditinjau sebelum tangkapan dan dapat disetujui atau ditolak dengan alasan. Situs yang diketahui tidak aman ditolak otomatis. REST dan gRPC mengekspos operasi permintaan yang sama.
Data antarmuka ternormalisasi
Format data Scene menentukan artefak antarmuka netral platform, termasuk status, sumber daya, dan bukti. Ekspor ternormalisasi saat ini diperoleh melalui MCP get_interface_scene; API katalog ini tidak mendefinisikan operasi Scene terpisah.