我只是在rails中编写我的第一个应用程序,我想知道,如果有最佳实践可以执行以下操作:
我有一个由脚手架创建的客户模型并将其提升.客户必须显示在谷歌地图中,因此如果转到/ customers/23,则会显示客户信息.另外,我在这个页面中有一个链接,用于在地图中显示用户(带有通过ajax出现的查询ui对话框).对我而言,问题是,这如何适应模型的正常结构.我是否应该创建一个名为"show_map"的动作,并为资源路线增加额外的路线?你怎么处理这种事情?
我有一个关于RESTful API设计的问题.遵循REST的指导原则,所有端点都应该是名词和复数,并且永远不应该是动词.但是,通常认证路由是:
/login
/logout
Run Code Online (Sandbox Code Playgroud)
这两个都是动词.如果你应该遵守指南,那么这些路线看起来应该更像:
/users?action=login
/users?action=logout
Run Code Online (Sandbox Code Playgroud)
但我从来没有使用任何具有此特定身份验证实现的API,每个人都使用第一个,包括我.但是我想知道这是因为很多人没有完全遵循这些指导方针而已成为一种习惯,还是有其他原因?
rest restful-authentication restful-url restful-architecture
我正在尝试使用dingo api(https://github.com/dingo/api/wiki/Transformers#custom-transformation-layer)为我的Post模型实现一个自定义转换器,我得到了这个例外:
缺少PostTransformer :: transform()的参数2,在第298行的/home/.../vendor/league/fractal/src/Scope.php中调用并定义
我的控制器:
$post = Post::findOrFail(2);
return $this->item($post, new PostTransformer);
Run Code Online (Sandbox Code Playgroud)
我的PostTransformer课程:
<?php
use Illuminate\Http\Request;
use Dingo\Api\Transformer\Binding;
use Dingo\Api\Transformer\TransformerInterface;
class PostTransformer implements TransformerInterface
{
public function transform($response, $transformer, Binding $binding, Request $request)
{
// Make a call to your transformation layer to transformer the given response.
return [
'kkk' => 'val'
];
}
}
Run Code Online (Sandbox Code Playgroud)
怎么了?
对于MailChimp API 2.0,有一种方法"批量订阅",用于发送要添加到MailChimp中特定列表的电子邮件地址数组.
如何在新的基于Rest Architecture的MailChimp API 3.0中实现这一点?
请参阅https://github.com/mailchimp/APIv3-examples/wiki/Overview
它说它可以使用对象数组
但是通过模式它只接受一个对象
Schema https://us9.api.mailchimp.com/schema /3.0/Lists/Members/Collection.json
php python mailchimp restful-architecture mailchimp-api-v3.0
我希望了解糟糕的RESTful设计的后果.例如,我听说在REST端点中使用动词而不是名词是不好的做法.我想知道在这种情况下使用动词的后果.
必须创建一个具有管理员权限的RESTful Web服务,并且普通用户可以访问资源(比如说汽车),我想为用户构建Uri:
http://myhost/users/5/cars/2
Run Code Online (Sandbox Code Playgroud)
但是,作为管理员用户,我想访问所有汽车,例如:
http://myhost/cars/51
Run Code Online (Sandbox Code Playgroud)
与我提出的第一个建议相比,您是否认为最好只为汽车使用一个Uri,为用户使用过滤器,例如:
http://myhost/cars/?user=5
Run Code Online (Sandbox Code Playgroud)
同一资源没有两个不同的Uris?您还有其他建议吗?
我正在使用flask-restful开发RESTful Web服务.
客户端需要能够请求服务器执行的作业.这项工作可能需要约1秒至约1小时才能完成.一般来说,预计需要1-5分钟.
作业完成后,客户端需要下载JSON转储.从100KB到100MB的任何地方.
我看到两个选项:
REST原则下哪个选项更受欢迎?
我在选项1中看到的问题是在等待响应时网络中断的可能性.
我们有一个Web应用程序(AngularJS和Web API),它具有非常简单的功能 - 显示作业列表,并允许用户选择和取消选定的作业.
我们正在尝试使用我们的API遵循RESTful方法,但这就是令人困惑的地方.
获得工作很简单 - 很简单 GET: /jobs
我们该如何取消所选择的工作?请记住,这是我们需要实施的唯一作业.对我来说,最简单和最合乎逻辑的方法是将所选作业ID的列表发送到API(服务器)并执行必要的过程.但这不是RESTful方式.
如果我们要按照RESTful方法执行它,那么我们需要发送PATCH请求jobs,json类似于:
PATCH: /jobs
[
{
"op": "replace",
"path": "/jobs/123",
"status": "cancelled"
},
{
"op": "replace",
"path": "/jobs/321",
"status": "cancelled"
},
]
Run Code Online (Sandbox Code Playgroud)
这将需要在客户端生成此json,然后将其映射到服务器上的某个模型,解析"path"属性以获取作业ID,然后执行实际取消.这对我来说似乎非常复杂和虚伪.
关于这种操作的一般建议是什么?当很多操作无法简单地映射到RESTful资源范例时,我很好奇人们在现实生活中做了些什么.
谢谢!
我有这个应用程序的麻烦。我需要的是,如果我检测到数据库(FIREBASE)中的更改,特别是在“ sala”和“ ventilacion”节点中,则该功能将执行其必需的操作。如果数据库中没有任何更改,则不会执行任何操作。我正在使用python和pyrebase库。这是代码。非常感谢您的帮助。
import pyrebase
import serial
import time
config = {
#firebase configurations
}
firebase = pyrebase.initialize_app(config)
db = firebase.database()
def ReconfiguracionFabrica():
ser.write('AT')
time.sleep(0.2)
ser.write('AT+RENEW')
time.sleep(0.3)
def ConfiguracionMaster():
time.sleep(0.5)
ser.write('AT+IMME1')
time.sleep(0.350)
ser.write('AT+ROLE1')
time.sleep(0.2)
ser=serial.Serial(port="/dev/ttyAMA0", baudrate=9600, timeout=1)
ReconfiguracionFabrica()
time.sleep(0.1)
ConfiguracionMaster()
time.sleep(0.1)
print "********** INICIO *************"
ser.flushInput()
contador=0
prender= ''
ventilacion1= ''
checkeo= ''
while True:
#if db.child("sala").: # It is the line where would be the conditional that allows me to detect any change only in the sala's node.
salidaLed1 …Run Code Online (Sandbox Code Playgroud) python restful-architecture firebase firebase-realtime-database
我们有带有属性的文章资源:
如果我们只想删除图像,则发出请求
{title: null, image: null, description: null, status: null}
Run Code Online (Sandbox Code Playgroud)
如果我们只想更新状态,我们会发出请求
{title: null, image: null, description: null, status: draft}
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,图像也会被删除
如何在REST中仅更新一个属性?