Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我的API是REST架构吗?_Python_Json_Web Services_Rest - Fatal编程技术网

Python 我的API是REST架构吗?

Python 我的API是REST架构吗?,python,json,web-services,rest,Python,Json,Web Services,Rest,我目前正在用Python和Flask设计一个Web服务。我现在很困惑它是一个RESTful服务还是一个普通的Web服务。我已经阅读了很多关于RESTful服务的资料,但是我仍然不能说我的服务是否是REST架构。 对我的API的请求是无状态的 以下是我所拥有的: from flask import Flask,request if __name__ == "__main__": appLogger.info("RestFul service initialized and started"

我目前正在用Python和Flask设计一个Web服务。我现在很困惑它是一个RESTful服务还是一个普通的Web服务。我已经阅读了很多关于RESTful服务的资料,但是我仍然不能说我的服务是否是REST架构。 对我的API的请求是无状态的

以下是我所拥有的:

from flask import Flask,request
if __name__ == "__main__":
    appLogger.info("RestFul service initialized and started")
    app.run(host="0.0.0.0",port=int("80"),debug=True)

@app.route('/',methods = ['POST'])
def add():
    """
    This function is mapped to the POST request of the REST interface
    """
    #check if a JSON object is declared in the header
    if request.headers['Content-Type'] == 'application/json; charset=UTF-8' and request.data:
            try:
                data = json.dumps(request.json)
            #check if recieved JSON object is valid according to the scheme
            #if (validateJSON(data)):
                try:
                    saveToMongo(data)
                    appLogger.info("Record saved to MongoDB")
                    return "JSON Message saved in MongoDB"
                except:
                    appLogger.error("Could not write to MongoDB")
            except:
                appLogger.error("Recieved invalid JSON")
    else:
        appLogger.error("Content-Type not defined or empty content")
    raise FailedRequest
如果没有可能的响应,我将返回一个json,它实际上是请求的有效负载。它始终是一个常规http响应,结果描述为自定义文本。
因为这个事实,它不是RESTful服务,如果我想称它为RESTful服务,我需要返回一个json对象,对吗?还是我完全错了?我的API只是一个简单的RPC吗?

我只看到一个可以发出
POST
请求的资源
/
。无法
获取以这种方式保存的对象集合或单个对象


有人可能会说,这样一个微不足道的系统并不违反任何REST原则。但我认为这还不足以称之为RESTful系统。这是一个简单的RPC系统,只有一个匿名的“save”方法。

将来,将有另一个GET请求,该请求和响应将使用json对象作为有效负载。但我还不能说,响应数据是生成的还是从现有的集合中获取的。这对休息建筑有关系吗?是否可以生成响应数据,或者它是RCP?是带有主体的GET请求?为什么?URL是什么样子的?主体是什么意思?响应主体(返回值)是请求的有趣部分,它取决于请求主体(参数)。这就是为什么我认为这应该是一个GET请求。我想我应该做一个POST请求,因为请求已经包含了一个主体?我认为这是一个RPC,对吗?是的,这是RPC,不是REST。谢谢,我认为这是一个开关:)