在角度我能够封装所有我的查询字符串参数,如...
checkAvailability(context: string, data: string): Observable<ResCheckAvailability> {
let url = 'http://someurl'
let params = new HttpParams();
params = params.append(context, data);
return this.http.get(url,{params: params})
.map(res => <ResCheckAvailability> res)
.do(dataReceived => console.log(dataReceived))
}
是否有一些如何使用apisauce做这样优雅的事情?或者我需要做一些像......
import { create } from 'apisauce'
export const CheckAvailability = async (context, data) => {
return api.get('http://someurl?context=' + context + '&data=' + data)
}
答案 0 :(得分:1)
ApiSauce可帮助您设置查询字符串,您只需要传递数据,它将添加到api的最后。
例如,您要对URL = http://someBaseUrl/path?context=2&data=3
发出GET请求
import {create} from 'apisauce'
const baseUrl = 'http://somebaseUrl'
const path = 'path'
//initialising api sauce
const api = create({
baseUrl,
headers: {
//your random headers},
timeout: 10000
})
//it will generate the above url
api.get(path, {
params: {
data: 3,
context: 2
}})
如果要进行POST,则在服务器上的PUT请求中的有效负载应位于相同的url(包含查询)上
{ username: 'testingUsername' }
// I am skipping the initialisation part as it would be same for both
const data = {
username: 'testingUsername'
}
const params= {
params: {
context: 2,
data: 3
}
}
api.post(path, data, params);
答案 1 :(得分:0)
这应该可以完成工作。
api.get(
'http://someurl.com/endpoint',
{ context: 'context' , data: 'data' },
{ headers: { Authorization: token, ... } }
)