【问题标题】:Building a private API to connect with mobile app? [closed]构建私有 API 以连接移动应用程序? [关闭]
【发布时间】:2015-08-23 06:56:00
【问题描述】:

我正在尝试构建一个私有 API 来连接到我的移动应用程序。一种用途是使用字符串参数进行调用,让 api 通过几个 nlp python 脚本运行字符串,然后返回一些 json。就 api 服务和资源而言,什么是一个好的起点?

到目前为止,我听说我可以为此使用 Django Rest Framework,但我想确保询问有更多经验的人。还有什么是托管它的最佳位置,包括脚本(我用 namecheap、amazon s3 等托管)

【问题讨论】:

  • 这与 StackOverflow 无关——您是在询问对外部资源(托管)的意见,以及对各种框架的意见。

标签: python django rest amazon-web-services django-rest-framework


【解决方案1】:

您的问题非常含糊且缺乏详细信息......所说的烧瓶可能是最容易启动和运行的

import flask,json
from flask import request

app = flask.Flask(__name__)

def validate_headers_if_needed():
    print request.headers

def process_get_or_post_arguments():
    return dict(post = request.form.to_dict(),
                get = request.args.to_dict(),
                headers_auth=request.headers.get("X-Authorization","None"))

@app.route("/api/v0/do_something",methods=['GET', 'POST'])
def do_something():
    validate_headers_if_needed()
    result = process_get_or_post_arguments()
    return json.dumps(result)

if __name__ == "__main__":
    app.run(port=8787,debug=True)

# curl --header "X-Authorization: MySecretToken" --data "test1=55&test2=hello%20world%test3=1" http://127.0.0.1:8787/api/v0/do_something?get_data=yellow

在选择主机时,您应该选择满足您需求的主机 我非常喜欢 dreamhost ...但是我最近使用数字海洋取得了巨大的成功...您也可以在本地 linux 上运行它(或windows box)并使用 noip.com 之类的东西将域名指向您的 box

【讨论】:

  • 谢谢乔兰!我听说过使用 Python 和 Flask。不过,我对此确实有几个问题。这通常存储在哪里,我计划使用 parse(数据库)和 s3(文件存储)。请注意,我对后端几乎没有经验,但需要知道足以让我的 mvp 启动并运行。另外,flask 在防止第三方应用程序使用私有 api 方面有多安全?
  • 和你做的一样安全......在验证它是否不符合你的任何标准时,你会引发一个 AuthenticationError ......你可以在任何可以安装烧瓶和运行 python 的地方运行它。 .
  • digital ocean 工作得很好......它很容易设置 apache 来服务它(那里有一百万零一个教程......)或者你可以使用更多的多线程应用程序来服务它,比如 gunicorn + nginx(还有很多教程,但设置起来有点困难)
  • 在这个例子中,你可以在本地运行它来测试,直到它按你想要的方式工作(可能需要几个小时)......然后把它放在主机上
猜你喜欢
  • 1970-01-01
  • 2012-04-29
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
  • 2021-03-17
  • 2019-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多