Don ' t 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
Struktur folder optimum:
<code>/ ├── public ├── src │ ├── api │ │ └── mock │ │ ├── fixtures │ │ │ └── get-tasks.js │ │ └── index.js │ └── main.js ├── package.json └── package-lock.json</code>
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 }, }); }
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 (); }
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); } } };
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"}, ], })); },
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); }); }
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 }
Anda juga boleh menentukan urlPrefix
tersuai:
laluan () { this.urlprefix = 'https: //devenv.ourapp.example'; this.get ('/tugas', () => {...}); }
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











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

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

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

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

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

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

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

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.
