小编Dav*_*d S的帖子

400对422对数据POST的响应

我正在尝试使用我正在处理的"类似REST"的API来确定在不同场景下返回的正确状态代码.假设我有一个终点允许以JSON格式进行POST'ing购买.它看起来像这样:

{
    "account_number": 45645511,
    "upc": "00490000486",
    "price": 1.00,
    "tax": 0.08
}
Run Code Online (Sandbox Code Playgroud)

如果客户向我发送"sales_tax"(而不是预期的"税收"),我应该返回什么.目前,我要回400.但是,我已经开始质疑自己了.我应该真的回来422吗?我的意思是,它是JSON(支持)并且它是有效的JSON,它只是不包含所有必需的字段.

rest http-status-codes

323
推荐指数
5
解决办法
25万
查看次数

如何使用heroku的临时文件系统

我在Heroku上使用Python/Django(Cedar Stack),我有一个我需要编写的管理命令,它将从S3存储桶中取出一个文件并对其进行处理.我不确定我是否理解如何使用短暂的文件系统.是否只有某些可写的目录?我发现另一篇文章暗示只有某些文件夹是可写的(但是,它似乎不适用于Cedar堆栈).我发现了这篇开发文章,但它没有详细介绍(注意:我确实理解它只是暂时的.我只需要解压缩文件并处理文件).我可以在应用程序的根目录下的任何位置创建一个文件夹吗?我怎么能得到它?好像我可能只是使用$ HOME.我通过连接到via做了一些测试

$ heroku run bash
Run Code Online (Sandbox Code Playgroud)

和运行:

$ echo #HOME
Run Code Online (Sandbox Code Playgroud)

收益:

/应用

和运行:

$ mkdir $HOME/tmp
Run Code Online (Sandbox Code Playgroud)

在应用程序的根目录中创建一个文件夹,并提供与其他文件和文件夹相同的用户和组.

那么......我在这里缺少什么?一个更好的方法吗?这有OS环境变量吗?我跑"env"而且我看不到更好的一个.

filesystems heroku

55
推荐指数
2
解决办法
4万
查看次数

重命名PostgreSQL中的枚举项

我想在PostgreSQL 9.1.5中更改枚举类型中项目的名称.

这是类型的创建stmt:

CREATE TYPE import_action AS ENUM
('Ignored',
'Inserted',
'Updated',
'Task created');
Run Code Online (Sandbox Code Playgroud)

我只想将'Task created'改为'Aborted'.从文档中可以看出,以下内容应该有效:

ALTER TYPE import_action
RENAME ATTRIBUTE "Task created" TO "Aborted"; 
Run Code Online (Sandbox Code Playgroud)

但是,我得到一个消息:

********** Error **********

ERROR: relation "import_action" does not exist
SQL state: 42P01
Run Code Online (Sandbox Code Playgroud)

但是,它显然确实存在.

该类型当前正由多个表使用.

我认为一定不能有办法做到这一点.我已经尝试了pgAdminIII中类型的对话框,但我无法看到它在那里重命名.(所以,要么强烈暗示我做不到,要么 - 我希望 - 一个小的疏忽是创建该对话的开发人员)

如果我不能在一个声明中这样做?那我该怎么办?我是否必须编写脚本来添加项目,将所有记录更新为新值,然后删除旧项目?这甚至会起作用吗?

看起来这应该是一件简单的事情.据我了解,记录只是存储对类型和项目的引用.我认为它们实际上并不存储我给它的文本值.但是,也许我在这里也错了.

postgresql postgresql-9.1

36
推荐指数
4
解决办法
1万
查看次数

OpenSSO/OpenAM替代方案

警告!我在这里有点钓鱼之旅,我甚至不确定我问的问题是否完全有意义.请善意回复你!:)

我最近接手了一个目前基于Java + Linux + Tomcat + MySQL的项目.现在,该系统基本上只是一个在后台有一些cron工作的网站,可以移动一些数据等等.在与产品经理合作开发优先顺序时,很清楚他想做什么我需要开始开发面向服务的体系结构(SOA < - buzz word warning!),最终我将结合使用Web服务器和应用程序服务器.注意:我正在考虑转向Glassfish v3.

目前,身份验证和授权在Java代码中处理,用户信息存储在MySQL数据库中.至少在我看来,我需要将其拆分为一个单独的身份验证服务(否则,最终将会出现一堆重复的代码来处理用户身份验证和授权).

我一直在研究单点登录(SSO)类型解决方案并进行一些研究.从我可以收集的信息来看,OpenSSO已被Oracle正式删除,但被ForgeRock收录,现在被称为OpenAM.这似乎非常接近我想要的,但由于我已经有一个基于MySQL的系统,我宁愿有一些东西支持它(或其他一些RDBMS).我在Stack Overflow上找到了它,它似乎表明它基本上是LDAP或什么也没有.

有没有办法让OpenSSO/OpenAM与数据库通信以进行身份​​验证和授权?

我的问题是:

OpenSSO/OpenAM有哪些其他选择?LDAP是否可行?注意:执行"OpenAM vs"谷歌搜索不会产生太多影响.人们倾向于"自己动手"吗?

任何有助于教育我的关于此主题的想法/建议/链接将不胜感激.提前感谢您的耐心和帮助.

java soa opensso glassfish-3 openam

35
推荐指数
1
解决办法
3万
查看次数

将消息发回SQS

我有一些EC2服务器从SQS队列中取消工作.偶尔,他们会遇到无法完成工作的情况.我有这个过程给我发电子邮件的条件.现在看来,消息一直"飞行"直到它超时.我希望该过程在发送电子邮件后立即将其释放回队列.但是,我不知道如何实现这一目标.有办法吗?如果是这样,请指点我电话或发布代码片段.

我正在使用Python 2.7.3和Boto 2.5.2.

python boto amazon-sqs

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

Django ForeignKey实例与原始ID

有没有办法在创建新模型时不必传入外键的模型实例?假设我有以下型号:

class Foo(models.Model):
    description = models.CharField(max_length=100)

    class Meta:
         db_table = u'foo'

class Bar(models.Model):
    info = models.CharField(max_length=100)
    foo = models.ForeignKey('Foo')

    class Meta:
         db_table = u'bar'
Run Code Online (Sandbox Code Playgroud)

后一个帖子请求进入视图 - 我知道foo记录的id,只是想在条形图表中插入一条记录.

如果我做:

new_bar = Bar(info="something important", foo=foo_id)
new_bar.save()
Run Code Online (Sandbox Code Playgroud)

我得到一个ValueError说"无法分配"546456487466L":"Bar.foo"只是一个"Foo"实例.

所以,我明白了...它希望我有一个Foo模型的实际实例.我知道我可以做一个Foo然后传入它.但是,似乎必须有一种方法来覆盖这个功能.我做了一些谷歌搜索和阅读文档,管理员中的raw_id_fields似乎是基本的想法.(也就是说,在这里允许原始id).但是,不要在ForeignKey字段上看到此选项.

对数据库进行往返以获取对象来获取id(我已经拥有)似乎非常低效.我知道进行往返验证了数据库中存在的id.但是,嘿......这就是我使用RDBMS并首先拥有外键的原因.

谢谢

django django-models

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

模拟补丁不适用于__init__.py中的类

我正在尝试使用补丁从方法中返回一个Mock.基本结构如下:

MyCode.py

class MyClass:

    def __init__(self, first_name, last_name):
        self.first = first_name
        self.last = last_name

    def get_greeting(self):
        return 'Hello {f} {l}'.format(f=self.first, l=self.last)


def get_new_greeting(first_name, last_name):
    obj = MyClass(first_name, last_name)
    return obj.get_greeting()


my_code_test.py

import unittest
from mock import Mock, patch
import my_code

class TestMyCode(unittest.TestCase):
    def setUp(self):
        pass

    @patch('my_code.MyClass')
    def test_get_greeting(self, MockClass):
        instance = MockClass.return_value
        mock_greeting = 'Hello Me'
        instance.get_greeting.return_value = mock_greeting

        greeting = my_code.get_new_greeting('john', 'doe')
        self.assertEqual(greeting, mock_greeting)


if __name__ == '__main__':
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

上面的代码对我来说很好.但是,当我将相同的模式应用于我正在尝试测试的实际代码时,真实对象(不是模拟对象)将在被测试的方法中返回.我看不出任何差异.唯一不同的是,真正的类是在init .py文件中定义的.我不确定这是否有所作为?以前见过这个吗?

注意:实际的lib是twilio 3.3.5,我使用的是Python 2.6.5和Django 1.3.1以及Mock 0.7.2

python unit-testing mocking twilio

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

在PostgreSQL中将varchar更改为boolean

我已经开始研究一个项目,那里有一个相当大的表(大约82,000,000行),我觉得它非常臃肿.其中一个字段定义为:

consistency character varying NOT NULL DEFAULT 'Y'::character varying
Run Code Online (Sandbox Code Playgroud)

它用作布尔值,值应始终为('Y'|'N').

注意:没有检查约束等.

我试图找出理由改变这个领域的理由.这是我有的:

  • 它被用作布尔值,所以就这样吧.显式优于隐式.
  • 它将防止编码错误,因为现在任何可以转换为文本的内容都会在那里盲目进行.

这是我的问题.

  • 尺寸/存储怎么样?db是UTF-8.所以,我认为在这方面确实没有多少节省.对于a boolean,它应该是1个字节,而对于'Y'UTF-8中的a 应该是1个字节(至少这是我在Python中检查长度时得到的).这里是否还有其他存储空间可以保存?
  • 查询性能?Postgres会因" =TRUE"与" ='Y'"的原因而获得任何性能提升吗?

postgresql storage database-design query-optimization postgresql-9.1

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

psql中set,\ set和\ pset之间的区别

psql在使用setvs. \setvs. 之间工作时,我有时会感到困惑\pset.我觉得:

  • set用于连接到db的会话变量.例如SET ROLE dba;
  • \set用于此psql会话的局部变量.例如\set time 'select current_timestamp'
  • \pset用于此psql会话的psql设置.例如'\pset border 2'

但是,我从来没有找到我认为对每个人都很好的解释.我的假设是否正确?

我正在使用PostgreSQL 9.4

postgresql psql postgresql-9.4

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

使用plpgsql获取函数内部当前函数的名称

无论如何,在plpgsql函数中你可以获得函数的名称吗?甚至是功能的OID?

我知道plpgsql中有一些"特殊"变量(如FOUND),但似乎没有办法解决这个问题.(虽然,如果您的函数是用C语言编写的,我已经读过了.)这并不重要,但它会使我做得更好/更不脆弱.

我正在使用PostgreSQL v.9.1.5

postgresql plpgsql postgresql-9.1

10
推荐指数
3
解决办法
4042
查看次数