小编Luu*_*lag的帖子

用于搜索的RESTful URL设计

我正在寻找一种合理的方式将搜索表示为RESTful URL.

设置:我有两个模型,汽车和车库,汽车可以在车库.所以我的网址看起来像:

/car/xxxx
  xxx == car id
  returns car with given id

/garage/yyy
  yyy = garage id
  returns garage with given id
Run Code Online (Sandbox Code Playgroud)

汽车可以独立存在(因此/汽车),也可以存在于车库中.例如,在给定车库中代表所有车辆的正确方法是什么?就像是:

/garage/yyy/cars     ?
Run Code Online (Sandbox Code Playgroud)

车库yyy和zzz中的汽车联盟怎么样?

什么是代表搜索具有某些属性的汽车的正确方法?说:给我看看所有带4扇门的蓝色轿车:

/car/search?color=blue&type=sedan&doors=4
Run Code Online (Sandbox Code Playgroud)

或者它应该是/汽车而不是?

使用"搜索"似乎不合适 - 什么是更好的方式/术语?应该只是:

/cars/?color=blue&type=sedan&doors=4
Run Code Online (Sandbox Code Playgroud)

搜索参数应该是PATHINFO还是QUERYSTRING的一部分?

简而言之,我正在寻找跨模型REST网址设计和搜索的指导.

[更新]我喜欢贾斯汀的答案,但他没有涉及多字段搜索案例:

/cars/color:blue/type:sedan/doors:4
Run Code Online (Sandbox Code Playgroud)

或类似的东西.我们怎么样

/cars/color/blue
Run Code Online (Sandbox Code Playgroud)

到多场案件?

rest

413
推荐指数
7
解决办法
18万
查看次数

数学 - 映射数字

如何在a和b之间线性地映射数字以在c和d之间进行.

也就是说,我希望2到6之间的数字映射到10到20之间的数字......但我需要一般化的情况.

我的大脑是油炸的.

mapping math interpolation numbers linear-algebra

91
推荐指数
3
解决办法
5万
查看次数

一种解决重叠矩形的算法?

这个问题实际上涉及翻滚,我将在下面概括如下:

我有一个2D视图,我在屏幕上的一个区域内有许多矩形.我如何展开这些盒子,使它们不会相互重叠,但只能用最小的移动来调整它们?

矩形的位置是动态的,取决于用户的输入,因此它们的位置可以是任何位置.

替代文字 图像显示问题和所需的解决方案

实际上,现实问题涉及翻车.

答案中的问题

  1. 矩形的大小不固定,并且取决于翻转中文本的长度

  2. 关于屏幕尺寸,现在我认为最好假设屏幕的大小足以容纳矩形.如果有太多的矩形并且算法没有解决方案,那么我只需要调整内容.

  3. "最小化"的要求更多的是为了美学而非绝对的工程要求.人们可以通过在两个矩形之间添加一个很大的距离来分隔两个矩形,但它作为GUI的一部分看起来不太好.我们的想法是使翻转/矩形尽可能接近其源(我将用黑线连接到源).所以要么'只为x移动一个'或'移动两个x'都可以.

language-agnostic algorithm graphics user-interface

88
推荐指数
5
解决办法
1万
查看次数

REST API - 在单个请求中批量创建或更新

让我们假设有两个资源Binder,并Doc具有关联关系意味着DocBinder自己站.Doc可能属于也可能不属于BinderBinder可能为空.

如果我想设计一个REST API,允许用户发送一个Docs 的集合,在单个请求中,如下所示:

{
  "docs": [
    {"doc_number": 1, "binder": 1}, 
    {"doc_number": 5, "binder": 8},
    {"doc_number": 6, "binder": 3}
  ]
}
Run Code Online (Sandbox Code Playgroud)

对于每个文档docs,

  • 如果doc存在则将其分配给Binder
  • 如果doc不存在,请创建它然后分配它

我真的很困惑这应该如何实现:

  • 使用什么HTTP方法?
  • 必须返回什么响应代码?
  • 这甚至适合REST吗?
  • URI怎么样?/binders/docs
  • 处理批量请求,如果一些项目引发错误但另一个项目通过该怎么办.必须返回什么响应代码?批量操作应该是原子的吗?

api rest

80
推荐指数
4
解决办法
8万
查看次数

验证类实例属性的正确方法

有一个像这样的简单Python类:

class Spam(object):
    __init__(self, description, value):
        self.description = description
        self.value = value
Run Code Online (Sandbox Code Playgroud)

我想检查以下约束:

  • "描述不能为空"
  • "价值必须大于零"

我应该:
1.在创建垃圾邮件对象之前验证数据?
2.检查__init__方法数据?
3. is_valid在垃圾邮件类上创建一个方法并使用spam.isValid()调用它?
4. is_valid在Spam类上创建一个静态方法,并使用Spam.isValid(描述,值)调用它?
5.检查制定者声明的数据?
6.等

你能推荐一款设计精良的/ Pythonic /非冗长(具有多种属性的课程)/优雅的方法吗?

python

72
推荐指数
4
解决办法
3万
查看次数

如何在Spring中有条件地启用或禁用预定作业?

我使用@Scheduled注释在Spring中定义具有cron样式模式的预定作业.

cron模式存储在配置属性文件中.实际上有两个属性文件:一个默认配置,一个依赖于环境的配置文件配置(例如dev,test,prod customer 1,prod customer 2等)并覆盖一些默认值.

我在spring上下文中配置了一个属性占位符bean,它允许我使用${}样式占位符从我的属性文件中导入值.

作业bean看起来像这样:

@Component
public class ImagesPurgeJob implements Job {

    private Logger logger = Logger.getLogger(this.getClass());

    @Override
    @Transactional(readOnly=true)
    @Scheduled(cron = "${jobs.mediafiles.imagesPurgeJob.schedule}")
    public void execute() {
        //Do something
            //can use DAO or other autowired beans here
    }
}
Run Code Online (Sandbox Code Playgroud)

我的上下文XML的相关部分:

<!-- Enable configuration of scheduled tasks via annotations -->
    <task:annotation-driven/>

<!-- Load configuration files and allow '${}' style placeholders -->
    <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:config/default-config.properties</value>
                <value>classpath:config/environment-config.properties</value>
            </list>
        </property>
        <property name="ignoreUnresolvablePlaceholders" value="true"/>
        <property name="ignoreResourceNotFound" …
Run Code Online (Sandbox Code Playgroud)

java cron spring scheduled-tasks

59
推荐指数
5
解决办法
7万
查看次数

正确处理VBA中的错误(Excel)

我已经和VBA合作了很长一段时间了,但我对错误处理仍然不太了解.

一篇好文章是CPearson.com的文章

但是我仍然想知道我以前使用ErrorHandling的方式是否完全错误: 第1块

On Error Goto ErrCatcher
   If UBound(.sortedDates) > 0 Then

       // Code

   Else
ErrCatcher:
       // Code

   End If
Run Code Online (Sandbox Code Playgroud)

if子句,因为如果它是真的,它将被执行,如果它失败,Goto将进入Else-part,因为数组的Ubound不应该为零或更少,没有Error,这种方法工作得很好至今.

如果我理解正确,它应该是这样的: 第2块

On Error Goto ErrCatcher
    If Ubound(.sortedDates) > 0 Then

       // Code
    End If

    Goto hereX

ErrCatcher:
       //Code
    Resume / Resume Next / Resume hereX

hereX:
Run Code Online (Sandbox Code Playgroud)

或者甚至像这样: 第3座

On Error Goto ErrCatcher
    If Ubound(.sortedDates) > 0 Then

       // Code
    End If

ErrCatcher:
    If Err.Number <> 0 then
       //Code
    End If
Run Code Online (Sandbox Code Playgroud)

我看到的最常见的方式是,一个错误"Catcher"位于sub的末尾,Sub实际上以"Exit Sub"结束,但是如果Sub是相当的话,它不会有点混乱如果你反之亦然阅读代码?

第4座

以下代码的来源: CPearson.com …

excel vba

56
推荐指数
4
解决办法
16万
查看次数

在c#中检查整数值为Null

我有一个整数值,我需要检查它是否为NULL.我使用null-coalescing运算符得到它

C#:

public int? Age;

if ((Age ?? 0)==0)
{
   // do somethig
}
Run Code Online (Sandbox Code Playgroud)

现在我必须检查一个旧的应用程序,其中声明部分不是三元组.那么,如何在没有null合并运算符的情况下实现这一点.

.net c#

45
推荐指数
2
解决办法
20万
查看次数

42
推荐指数
5
解决办法
30万
查看次数

通过Python运行Excel宏?

我试图通过python运行一个宏,但我不知道如何让它工作......

到目前为止,我已经得到了以下代码,但它不起作用.

import win32com.client
xl=win32com.client.Dispatch("Excel.Application")
xl.Workbooks.Open(Filename="C:\test.xlsm",ReadOnly=1)
xl.Application.Run("macrohere")
xl.Workbooks(1).Close(SaveChanges=0)
xl.Application.Quit()
xl=0
Run Code Online (Sandbox Code Playgroud)

我得到以下回溯:

Traceback (most recent call last):
  File "C:\test.py", line 4, in <module>
    xl.Application.Run("macrohere")
  File "<COMObject <unknown>>", line 14, in Run
  File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 282, in _ApplyTypes_
    result = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args)
com_error: (-2147352567, 'Exception occurred.', (0, u'Microsoft Excel', u"Cannot run the macro 'macrohere'. The macro may not be available in this workbook or all macros may be disabled.", u'xlmain11.chm', 0, -2146827284), None)
Run Code Online (Sandbox Code Playgroud)

编辑

import win32com.client
xl=win32com.client.Dispatch("Excel.Application") …
Run Code Online (Sandbox Code Playgroud)

python excel vba python-2.7

42
推荐指数
2
解决办法
7万
查看次数