Jadual Kandungan
Mirage: Penyelesaian Mengejek Bahagian Pelanggan
Menyediakan Mirage
Bagaimana Mirage berfungsi
Permintaan pengendalian
Data dinamik dengan lapisan data Mirage
Mengintegrasikan Mirage ke aplikasi yang ada
Kesimpulan
Rumah hujung hadapan web tutorial css Don ' t tunggu! Mengejutkan API

Don ' t tunggu! Mengejutkan API

Apr 03, 2025 am 09:14 AM

Jangan tunggu! Mengejutkan API

Pembangunan aplikasi web moden sering melibatkan gandingan longgar antara front-end dan back-end, sering dikendalikan oleh pasukan berasingan. Ini boleh membawa kepada cabaran penyegerakan. Penyelesaiannya adalah untuk mensimulasikan API back-end, mewujudkan pelayan "palsu" yang meniru tingkah laku yang diharapkan. Proses ini dikenali sebagai mengejek . Idealnya, mengejek membolehkan pembangunan front-end untuk meneruskan secara bebas, tanpa kebergantungan back-end langsung. Walaupun pelbagai pendekatan mengejek wujud, ini boleh menjadi menakutkan.

Artikel ini menunjukkan pengejaran API yang berkesan dan pelaksanaannya dalam aplikasi baru atau sedia ada menggunakan pendekatan rangka kerja-agnostik (berkenaan dengan mana-mana rangka kerja atau vanila JavaScript).

Mirage: Penyelesaian Mengejek Bahagian Pelanggan

Kami akan menggunakan MirageJs, rangka kerja mengejek pelanggan. Mirage beroperasi dalam penyemak imbas, memintas XMLHttpRequest dan Fetch permintaan untuk mensimulasikan respons API. Ia menyediakan antara muka mesra pengguna dan memudahkan proses mengejek.

Kami akan membina aplikasi yang mudah dilakukan menggunakan VUE (walaupun pendekatan itu adalah kerangka kerja).

Menyediakan Mirage

Pasang Mirage:

 # npm
npm i miragejs -d

# Benang
benang tambah miragejs -d
Salin selepas log masuk

Struktur folder optimum:

 <code>/ ├── public ├── src │ ├── api │ │ └── mock │ │ ├── fixtures │ │ │ └── get-tasks.js │ │ └── index.js │ └── main.js ├── package.json └── package-lock.json</code>
Salin selepas log masuk

Buat api/mock/index.js :

 // api/mock/index.js
import {server} dari 'mirageJs';

Fungsi lalai eksport ({everence = 'development'} = {}) {
    Kembalikan pelayan baru ({
        persekitaran,
        laluan () {
            // Laluan yang ditakrifkan di sini
        },
    });
}
Salin selepas log masuk

Dalam fail bootstrap aplikasi anda (misalnya, src/main.js untuk vue):

 // main.js
import createeserver dari './api/mock/index';

jika (process.env.node_env === 'pembangunan') {
    createServer ();
}
Salin selepas log masuk

Bersyarat ini memastikan mirage dikecualikan daripada pengeluaran pengeluaran.

Bagaimana Mirage berfungsi

Mirage adalah pihak pelanggan, menggunakan Perpustakaan Pretender. Pretender memintas permintaan, menghalang mereka daripada mencapai pelayan sebenar dan mengarahkannya ke pelayan Mirage yang disimulasikan. Tab Rangkaian Devtools tidak akan menunjukkan permintaan Mirage, kerana mereka ditangani secara dalaman.

Permintaan pengendalian

Mari buat A /api/tasks Endpoint untuk mengambil item To-Do (menggunakan AXIOS):

 // komponen/tugas.vue
Eksport Lalai {
    async dicipta () {
        Cuba {
            const {data} = menunggu axios.get ('/api/tugas');
            this.tasks = data.tasks;
        } menangkap (e) {
            Console.error (e);
        }
    }
};
Salin selepas log masuk

Pada mulanya, Mirage akan log ralat yang menunjukkan laluan yang tidak ditentukan. Kami menangani ini dengan menambahkan pengendali laluan di api/mock/index.js :

 // api/mock/index.js
laluan () {
    this.get ('/api/tugas', () => ({
        Tugas: [
            {id: 1, teks: "Feed the Cat"},
            {id: 2, teks: "Basuh hidangan"},
        ],
    }));
},
Salin selepas log masuk

Mirage menyokong pelbagai kaedah HTTP ( get , post , patch , put , delete , options ).

Data dinamik dengan lapisan data Mirage

Untuk data dinamik, Mirage menyediakan cangkuk seeds dan pangkalan data ringan. Mari refactor:

 // api/mock/index.js
biji (pelayan) {
    server.db.loadData ({
        Tugas: [
            {id: 1, teks: "Feed the Cat"},
            {id: 2, teks: "Basuh hidangan"},
        ],
    });
},

laluan () {
    this.get ('/api/tugas', (skema) => {
        pulangan skema.db.tasks;
    });
    this.post ('/api/tugas', (skema, permintaan) => {
        const task = json.parse (request.requestBody) .data;
        pulangan skema.db.tasks.insert (tugas);
    });
    this.delete ('/api/tugas/: id', (skema, permintaan) => {
        const id = request.params.id;
        pulangan skema.db.tasks.remove (ID);
    });
}
Salin selepas log masuk

Parameter schema dalam pengendali laluan menyediakan akses kepada pangkalan data Mirage. Parameter request mengandungi butiran permintaan.

Mengintegrasikan Mirage ke aplikasi yang ada

Untuk mengintegrasikan Mirage ke dalam aplikasi yang sedia ada, gunakan kaedah passthrough() untuk mengendalikan permintaan yang tidak diasingkan:

 laluan () {
    this.get ('/api/tugas', () => {...});
    this.passthrough (); // Mengendalikan permintaan yang tidak diasingkan
}
Salin selepas log masuk

Anda juga boleh menentukan urlPrefix tersuai:

 laluan () {
    this.urlprefix = 'https: //devenv.ourapp.example';
    this.get ('/tugas', () => {...});
}
Salin selepas log masuk

Ini membolehkan peralihan lancar antara Mirage dan API sebenar.

Kesimpulan

MirageJS menawarkan penyelesaian yang diselaraskan dan pelanggan untuk mengejek API, menghapuskan keperluan untuk proses luaran atau pengetahuan sisi pelayan. Kemudahan penggunaan dan ciri-ciri yang kuat menjadikannya alat yang berharga untuk pemaju depan. Rujuk dokumentasi MirageJS rasmi untuk ciri dan tutorial yang lebih canggih. Contoh kerja boleh didapati di GitHub.

Atas ialah kandungan terperinci Don ' t tunggu! Mengejutkan API. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1662
14
Tutorial PHP
1261
29
Tutorial C#
1234
24
Fon Font Google Fon Fon Font Google Fon Apr 09, 2025 am 10:42 AM

Saya melihat Font Google melancarkan reka bentuk baru (tweet). Berbanding dengan reka bentuk besar yang terakhir, ini terasa lebih berulang. Saya hampir tidak dapat memberitahu perbezaannya

Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScript Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScript Apr 11, 2025 am 11:29 AM

Pernahkah anda memerlukan pemasa undur dalam projek? Untuk sesuatu seperti itu, mungkin semula jadi untuk mencapai plugin, tetapi sebenarnya lebih banyak lagi

Panduan Atribut Data HTML Panduan Atribut Data HTML Apr 11, 2025 am 11:50 AM

Semua yang anda ingin tahu mengenai atribut data dalam HTML, CSS, dan JavaScript.

Bukti konsep untuk menjadikan sass lebih cepat Bukti konsep untuk menjadikan sass lebih cepat Apr 16, 2025 am 10:38 AM

Pada permulaan projek baru, kompilasi SASS berlaku dalam sekejap mata. Ini terasa hebat, terutamanya apabila ia dipasangkan dengan BrowserSync, yang dimuat semula

Bagaimana Kami Membuat Tapak Statik yang Menjana Corak Tartan Di SVG Bagaimana Kami Membuat Tapak Statik yang Menjana Corak Tartan Di SVG Apr 09, 2025 am 11:29 AM

Tartan adalah kain berpola yang biasanya dikaitkan dengan Scotland, terutamanya kilt bergaya mereka. Di Tartanify.com, kami mengumpulkan lebih dari 5,000 Tartan

Cara Membina Komponen Vue dalam Tema WordPress Cara Membina Komponen Vue dalam Tema WordPress Apr 11, 2025 am 11:03 AM

Arahan template inline membolehkan kita membina komponen Vue yang kaya sebagai peningkatan progresif ke atas markup WordPress yang sedia ada.

PHP adalah A-OK untuk templat PHP adalah A-OK untuk templat Apr 11, 2025 am 11:04 AM

Templat PHP sering mendapat rap buruk untuk memudahkan kod subpar - tetapi itu tidak perlu berlaku. Mari kita lihat bagaimana projek PHP dapat menguatkuasakan asas

Pengaturcaraan sass untuk mencipta kombinasi warna yang boleh diakses Pengaturcaraan sass untuk mencipta kombinasi warna yang boleh diakses Apr 09, 2025 am 11:30 AM

Kami sentiasa mencari untuk menjadikan web lebih mudah diakses. Kontras warna hanya matematik, jadi Sass dapat membantu menutup kes -kes kelebihan yang mungkin dilewatkan oleh para pereka.

See all articles