标签: restful-architecture

轨道控制器中进一步操作的最佳实践

我只是在rails中编写我的第一个应用程序,我想知道,如果有最佳实践可以执行以下操作:

我有一个由脚手架创建的客户模型并将其提升.客户必须显示在谷歌地图中,​​因此如果转到/ customers/23,则会显示客户信息.另外,我在这个页面中有一个链接,用于在地图中显示用户(带有通过ajax出现的查询ui对话框).对我而言,问题是,这如何适应模型的正常结构.我是否应该创建一个名为"show_map"的动作,并为资源路线增加额外的路线?你怎么处理这种事情?

ruby ruby-on-rails crud restful-architecture

1
推荐指数
1
解决办法
242
查看次数

RESTful身份验证API设计

我有一个关于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

1
推荐指数
1
解决办法
538
查看次数

Laravel dingo/api定制变压器

我正在尝试使用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)

怎么了?

php api rest restful-architecture laravel

1
推荐指数
1
解决办法
2935
查看次数

MailChimp API 3.0批量/批量订阅

对于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

1
推荐指数
1
解决办法
6075
查看次数

糟糕的RESTful设计的例子

我希望了解糟糕的RESTful设计的后果.例如,我听说在REST端点中使用动词而不是名词是不好的做法.我想知道在这种情况下使用动词的后果.

api rest restful-url restful-architecture

1
推荐指数
1
解决办法
157
查看次数

用于管理员和普通用户访问的RESTful API最佳实践

必须创建一个具有管理员权限的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?您还有其他建议吗?

rest uri restful-url restful-architecture

1
推荐指数
1
解决办法
2551
查看次数

在RESTful Web服务中,服务器是否可以花费很多分钟来响应?

我正在使用flask-restful开发RESTful Web服务.

客户端需要能够请求服务器执行的作业.这项工作可能需要约1秒至约1小时才能完成.一般来说,预计需要1-5分钟.

作业完成后,客户端需要下载JSON转储.从100KB到100MB的任何地方.

我看到两个选项:

  1. 客户端将作业作为POST请求提交,而服务器的响应仅在作业完成时提供.响应包括JSON转储.
  2. 客户端将作业作为POST请求提交,服务器立即响应200 OK.然后,客户端每隔60秒提交一次GET状态请求.作业完成后,它会提交另一个GET请求来下载JSON转储.

REST原则下哪个选项更受欢迎?

我在选项1中看到的问题是在等待响应时网络中断的可能性.

python rest flask restful-architecture flask-restful

1
推荐指数
1
解决办法
818
查看次数

RESTful API和现实生活中的例子

我们有一个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资源范例时,我很好奇人们在现实生活中做了些什么.

谢谢!

api rest restful-architecture asp.net-web-api

1
推荐指数
2
解决办法
3568
查看次数

How to detect changes in firebase child with python?

我有这个应用程序的麻烦。我需要的是,如果我检测到数据库(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

1
推荐指数
1
解决办法
2991
查看次数

REST中的PATCH,并且为null

我们有带有属性的文章资源:

  • 标题
  • 图片
  • 描述
  • 状态:已发布| 草案

如果我们只想删除图像,则发出请求

{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中仅更新一个属性?

rest restful-architecture

1
推荐指数
1
解决办法
2140
查看次数