Envoltorio API oficial de Weapp(微信小程序), cuyo objetivo es exponer una API de programación moderna, amigable y fluida.
API asíncrona prometida
Accesos directos para la API wx.request
Mejoras API oficiales
Cliente http RESTful
# 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
usa el sistema de módulos UMD, puede cargarlo en formato Commonjs o 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 )
Envuelve casi todas las API oficiales, consulte Métodos envueltos
Cree accesos directos de solicitud http de acuerdo con los verbos declarados del miniprograma wechat (RFC 2616). Especialmente, el verbo PATCH
puede ser útil para RESTful-ist estricto, por lo que también se ha definido.
weapp.request
Resuelve una respuesta que toma un código de estado en el rango de [200, 300) y rechaza una respuesta que está fuera del rango.
La respuesta resuelta y el motivo/error rechazado es el objeto de respuesta del wx.request
nativo.
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 ] )
El argumento init
opcional es una función sin argumentos para interpolar parámetros de solicitud y espera devolver un valor de Objeto por contrato. puede anular cualquier parámetro de solicitud mediante el objeto devuelto, excepto la url
y method
.
// logic of init function
const config = { ... }
return { ... config , ... init ( ) , url , method }
weapp.requireAuth
(DPRECIADO)DPRECIADO
A continuación se muestra un escenario de middleware Express para inicio de sesión de weapp cuyo objetivo es facilitar la integración del inicio de sesión de weapp y la lógica getUserInfo. autenticación-weapp-expresa
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 : { } } )
Registro de cambios