Weapp(微信小程序) pembungkus API resmi, bertujuan untuk mengekspos API pemrograman yang modis, ramah dan lancar.
API asinkron yang dijanjikan
Pintasan untuk wx.request
API
Penyempurnaan API resmi
Klien http yang tenang
# via Github
npm i xixilive/weapp-next --save-dev
# via npm
npm i weapp-next --save-dev
const weapp = require ( 'weapp-next' ) ( wx )
const client = weapp . Http ( 'https://api.server.com/' )
//async/await
async function postLogin ( ) {
const { code } = await weapp . login ( )
const { errMsg , ... userInfo } = await weapp . getUserInfo ( { withCredentials : true } )
return await client . post ( '/login' , { data : { ... userInfo , code } } )
}
//promise
function postLogin ( ) {
const getUserInfo = code => opts => {
return weapp . getUserInfo ( opts ) . then ( ( { errMsg , ... userInfo } ) => ( { userInfo , code } )
}
const postRequest = data => client . post ( '/login' , { data } )
return weapp . login ( ) . then ( getUserInfo ) . then ( postRequest )
}
weapp-next
menggunakan sistem modul UMD, Anda dapat memuatnya dalam format Commonjs atau AMD.
import weapp from 'weapp-next'
// get wrapped wx Object
const { request , Http } = weapp ( wx )
// use request API
request ( { url : 'https://test.com' , method : 'GET' } ) . then ( response => console . log )
// use shortcuts of request API, such as get, post, put, etc.
request . get ( 'https://test.com' ) . then ( response => console . log )
// use Http client
const http = Http ( 'https://server.com/api' )
http . get ( '/path' ) . then ( response => console . log )
// or
const weapp = require ( 'weapp-next' ) ( wx )
Menggabungkan hampir semua API resmi, lihat Metode yang dibungkus
Buat pintasan permintaan http sesuai dengan program mini wechat yang dinyatakan kata kerja (RFC 2616). khususnya, kata kerja PATCH
mungkin berguna untuk RESTful-ist yang ketat, dan juga telah didefinisikan.
weapp.request
Ini menyelesaikan respons yang mengambil kode status dalam rentang [200, 300), dan menolak respons yang berada di luar rentang.
Respons yang terselesaikan dan alasan/kesalahan yang ditolak adalah objek respons dari wx.request
asli.
import weapp from 'weapp-next'
const { request } = weapp ( wx )
request ( { url , method : 'GET' } )
. then ( response => {
// response is the response object from wx.request
} )
. catch ( error => {
// error is the response object from wx.request
} )
request . get ( url : String [ , init : Function ] )
request . post ( url : String , body : String / Object , [ , init : Function ] )
request . put ( url : String , body : String / Object , [ , init : Function ] )
request . patch ( url : String , body : String / Object , [ , init : Function ] )
request . delete ( url : String [ , init : Function ] )
request . head ( url : String [ , init : Function ] )
request . options ( url : String [ , init : Function ] )
request . trace ( url : String [ , init : Function ] )
request . connect ( url : String [ , init : Function ] )
Argumen init
opsional adalah fungsi tanpa argumen untuk menginterpolasi parameter permintaan, dan mengharapkan untuk mengembalikan nilai Objek berdasarkan kontrak. Anda dapat mengganti parameter permintaan apa pun dengan objek yang dikembalikan kecuali url
dan method
.
// logic of init function
const config = { ... }
return { ... config , ... init ( ) , url , method }
weapp.requireAuth
(DPRRESIASI)DIREKASI
Berikut adalah skenario login weapp untuk middleware Ekspres yang bertujuan untuk memudahkan integrasi login weapp dan logika getUserInfo. ekspres-weapp-auth
import weapp from 'weapp-next'
const http = weapp ( wx ) . Http ( 'https://api.server.com/' )
http . get ( '/status' , { version : '1' } ) // /status?version=1
http . post ( '/status' , { data : { } } )
Ubah catatan