首页 > 解决方案 > 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)
}

标签: react-native

解决方案


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);

推荐阅读