0

我正在制作一个 android 和 iOS 应用程序,该应用程序将使用返回适当 json 响应的 api 与服务器交互。我团队中的其他人正在做服务器端的工作。我不想打扰/等待她完成服务器实施。

是否有一个网站可以帮助我创建一个测试 api,以便每当我调用它时,它都会返回一个预定义的 Json 响应?

示例:如果网站被调用api.com,那么如果我创建一个帐户并调用GET api.com/my_account/get_key它返回{"key": "fgjllpoiunvxaqw"}。我当然会在网站上对响应进行硬编码。

谢谢 :)

4

4 回答 4

3

如果您只是从服务器读取数据(例如只发出 /GET 请求),您可以将一些 .json 文件放在服务器上,然后从您的应用程序中读取它们。

例如,对于 get_key,您可以调用GET yourwebsite.com/get_key.json和解析数据。通过这种方式,您可以模拟您的应用程序如何处理网络延迟,这对于开始添加加载器和错误处理 UI 非常有用。

如果您需要 POST,我通常有一个 PHP 脚本来写入服务器上的文件,以便稍后检查它发布的内容:

<?php
   file_put_contents('testPostUserData.txt', file_get_contents('php://input'));
?>

如果您需要更多动态交互(GET 和 POST 数据,为特定用户检索一些数据),那么您可以使用一些免费提供的服务,如BackendlessKinveyStackMobParse

最后,我通常有一个预处理器 #define 来在假 API 和真实 API 之间切换

#ifdef FAKE_API
static NSString * path requestBaseURL = @"http://yourwebsite.com";
#else
static NSString * const requestBaseURL = @"http://realwebserver.com";
#endif
于 2013-05-14T15:22:13.933 回答
1

尽管此解决方案需要您编写一些代码,但我认为它可能对某些人来说已经足够了。

在等待回复时,我使用BottlePy编写了一个模拟 api ,对于像我这样的新 python 开发人员来说,这非常容易。

第 1 步:easy_install bottlepip install bottle
第 2 步:创建您的 API,如下所示:

from bottle import route, run
import json

@route('/login', method='POST')
def login():
    if request.POST.get('username') == 'a' and request.POST.get('password') == 'b':
        return json.dumps({'status': 'success'})
    else:
        return json.dumps({'status': 'fail'})

run(host='localhost', port=8080, reloader=True)
# THATS IT!!!!

第 3 步:使用控制台运行文件python name_of_file.py
第 4 步:完成,您的 api 已启动。POST localhost:8080/login在这种情况下测试使用

于 2013-05-14T16:03:20.930 回答
1

实现起来非常简单——你需要的是一个模拟 API。周围有几个,比如JMockitMockito

模拟是软件设计和测试的一个组成部分。

于 2013-05-14T15:24:10.937 回答
1

终于找到了一个非常好的网站:Apiary。完全满足我的需要,加上其他一些很棒的东西,比如创建文档、提供协作工具等。

于 2013-05-17T06:07:47.860 回答