react-native - apisauce - 发送查询字符串参数
问题描述
在角度我能够像这样封装我的所有查询字符串参数......
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)
}
解决方案
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);
推荐阅读
- mongodb - 聚合选择中的计数结果
- oauth - 与活动目录集成
- java - 如何理解 Java 中比较器引发的顺序?
- java - 具有不同颜色状态栏的两个活动
- django - 如何将 URL 添加到通用 ListView
- c# - 如何在触发属性中基于 dotnet 核心的 Azure 函数中从 settings.json 读取配置值
- angular - Angular 7 使用导入 Googlemaps
- php - 批量 HTTP 状态请求
- django - Django Rest Framework 文件上传说文件未提交
- android - React Native:当 android:windowSoftInputMode 设置为“adjustNothing”时,keyboardDidShow 侦听器未触发