如何在python中为数据库创建可分发的RESTful API?

时间:2019-03-21 04:21:47

标签: python database rest api

如果以下提供的信息似乎不足,我事先表示歉意。

整个编程语言都是python。

我试图理解为数据库创建API的过程,该数据库可以被世界各地的任何人访问。就像一个具有正确主机名的API“ https://testing.org/api/someendpoint”一样,想要创建一个这样的API,而不是像“ http://localhost:5000/users”那样,如链接“ https://www.roytuts.com/python-rest-api-crud-example-using-flask-and-mysql/”中所述。认为我没有开发API的经验)

我也不知道是否需要在其他地方托管数据库(当前位置-本地计算机)来创建全局API。

那么我该如何从建立本地api链接变为全局api链接。

该数据库是具有单个表的普通数据库,该表包含名称,id,销售信息,时间等信息。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

有两种工具可以使这项工作容易得多:

https://www.djangoproject.com/带有网络界面,管理员以及其他功能。最有用的是它具有ORM(https://en.wikipedia.org/wiki/Object-relational_mapping)-一种类似地处理数据库对象和python对象的方法。

您可能还会发现https://www.django-rest-framework.org/是一个有用的补充-它使Django的REST API成为可能。如果您的界面要求干净并且定义明确,那么您应该很快就可以开始使用。您不需要它就可以使Django具有REST接口-但这需要大量重复工作。

答案 1 :(得分:0)

  

我也不知道我是否需要托管数据库(当前位置-   本地计算机)创建全局API。

您可能想托管在云中,例如Google Appengine或Google Compute Engine。您可以使用Google Appengine做到这一点。

实施(您提到已经完成)可以通过许多方式来完成。如果您选择Google Appengine,则可以仅基于该手册中的示例编写代码。任何实施细节都可能取决于您的特定环境,但是您可能需要考虑我当前的方式。我只是从数据库中读取数据,然后将其输出为JSON。

示例:

    cursor = mariadb_connection.cursor()
    cursor.callproc('GetSomeDataYouWant') # Calling a stored procedure
    thelist = []
    for result in cursor.fetchall():
        my_dict = {
            "name": result[1],
            "sales": result[2],
            "info": result[3]
        }
        thelist.append(my_dict)
    cursor.close()
    mariadb_connection.close()
    return get_success_response(thelist)

辅助功能:

def get_success_response(response):
  return {
    'statusCode': 200,
    'headers': {
      'Content-Type': 'application/json',
      'Access-Control-Allow-Origin' : '*' # Required for CORS support to work
    },
    'body': json.dumps(response)
  }