首页
学习
活动
专区
圈层
工具
发布

使用DDD来构建你的REST API,而不是CRUD

REST围绕着资源这个概念而构建的,然后用URI来表示。然后一个HTTP动词和资源URI组合起来对指定资源进行HTTP调用来执行操作。...首先,客户端不应该调用一个API,然后就把账户余额更新为他们想要的数量,这不是乱套了吗?!帐户可能有最低余额。...当然,并不是说你必须使用DDD来设计你的REST,但是,由于REST资源可以很好地映射到DDD实体,因此我发现设计REST API特别适合使用DDD。 那么这是什么意思?...在客户端,将变得更加的明确,什么操作可以执行,什么操作不可以执行。如果API文档记录的很好的话,例如使用Swagger来定义文档,那么每个API的限制(或约束)将变得非常明确。...如果你计划将API作为公共端点来公开,那么你就必须在非常长的时间内支持该API。基本上认为它是软件标准的永远。我总是鼓励团队在以后难以改变的事情上花时间,API就是这样的例子。

2.9K50

为什么我们的机器学习平台支持Python,而不是R

前言 免责声明:以下内容是基于作者的观察——而不是一个行业的学术调查。 有很多文章比较了Python和R在数据科学方面的相对优点。但是这并不在这篇文章的讨论范围。...这篇文章是关于数据分析师和机器学习工程师的分歧,以及他们对编程语言的不同需求。 简单的说法是,机器学习工程师本质上是软件工程师,他们使用的是为软件工程而设计的编程语言,而不是统计学。...在建立这个API,你需要: 加载您的模型,无论您使用什么框架,几乎可以肯定它具有本机Python绑定。 使用框架来服务您的API。...负责它们的人不是数据分析师,而是工程师(就职责而言,而不是头衔而言),他们使用的是软件工程师熟悉的工具和语言,比如Python。R始终是生成仪表板和报告的有效工具。...换句话说,我们为机器学习工程师而不是数据分析师建立了一个平台,这意味着我们支持Python而不是R。 ? ·END·

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    前后端分离开发,RESTful 接口如何设计

    正因为可以操作资源,也就意味着并不是每个人都可以这样做。我们完全可以建立一个防护模型,要求用户在操作前验证身份,证明他们具有该操作的授权。...POST 动词的另一个主要用途是“追加(Append)”资源信息,即增量编辑或部分更新,而不是提交完整的资源。这里应使用 PUT 操作。...表1 成功的客户端请求 ? 表2 — 客户端重定向请求 表 3 中的响应代码表示客户端请求无效,如果条件不发生变化,重新请求仍无法处理。这些故障可能有请求格式错误、未授权的请求、请求的资源不存在等。...表3 客户端请求错误 最后,表4中的响应代码表示服务器暂时无法处理客户端请求(可能仍然无效)。客户端应当在将来的某个时候重新请求。 ?...IETF 选择创建一个新的标准,而不是改变 URI 方案本身,以避免破坏现有的系统并明确区分这两种方法。那些支持 IRI 的人故意这样做。还定义了在 IRI 和 URI 之间进行转换的映射方案。

    3.1K01

    RESTful 架构基础

    正因为可以操作资源,也就意味着并不是每个人都可以这样做。我们完全可以建立一个防护模型,要求用户在操作前验证身份,证明他们具有该操作的授权。...POST 动词的另一个主要用途是“追加(Append)”资源信息,即增量编辑或部分更新,而不是提交完整的资源。这里应使用 PUT 操作。...表1 成功的客户端请求 ? 表2 — 客户端重定向请求 表3中的响应代码表示客户端请求无效,如果条件不发生变化,重新请求仍无法处理。这些故障可能有请求格式错误、未授权的请求、请求的资源不存在等。...表3 客户端请求错误 最后,表4中的响应代码表示服务器暂时无法处理客户端请求(可能仍然无效)。客户端应当在将来的某个时候重新请求。 ?...IETF 选择创建一个新的标准,而不是改变 URI 方案本身,以避免破坏现有的系统并明确区分这两种方法。那些支持 IRI 的人故意这样做。还定义了在 IRI 和 URI 之间进行转换的映射方案。

    1.2K30

    RESTful 架构基础

    正因为可以操作资源,也就意味着并不是每个人都可以这样做。我们完全可以建立一个防护模型,要求用户在操作前验证身份,证明他们具有该操作的授权。...POST 动词的另一个主要用途是“追加(Append)”资源信息,即增量编辑或部分更新,而不是提交完整的资源。这里应使用 PUT 操作。...表1 成功的客户端请求 ? 表2 — 客户端重定向请求 表3中的响应代码表示客户端请求无效,如果条件不发生变化,重新请求仍无法处理。这些故障可能有请求格式错误、未授权的请求、请求的资源不存在等。 ?...表3 客户端请求错误 最后,表4中的响应代码表示服务器暂时无法处理客户端请求(可能仍然无效)。客户端应当在将来的某个时候重新请求。 ?...IETF 选择创建一个新的标准,而不是改变 URI 方案本身,以避免破坏现有的系统并明确区分这两种方法。那些支持 IRI 的人故意这样做。 还定义了在 IRI 和 URI 之间进行转换的映射方案。

    1.1K20

    RestFul架构基础

    正因为可以操作资源,也就意味着并不是每个人都可以这样做。我们完全可以建立一个防护模型,要求用户在操作前验证身份,证明他们具有该操作的授权。...POST 动词的另一个主要用途是“追加(Append)”资源信息,即增量编辑或部分更新,而不是提交完整的资源。这里应使用 PUT 操作。...表1 成功的客户端请求 ? 表2 — 客户端重定向请求 表3中的响应代码表示客户端请求无效,如果条件不发生变化,重新请求仍无法处理。这些故障可能有请求格式错误、未授权的请求、请求的资源不存在等。...表3 客户端请求错误 最后,表4中的响应代码表示服务器暂时无法处理客户端请求(可能仍然无效)。客户端应当在将来的某个时候重新请求。 ?...IETF 选择创建一个新的标准,而不是改变 URI 方案本身,以避免破坏现有的系统并明确区分这两种方法。那些支持 IRI 的人故意这样做。还定义了在 IRI 和 URI 之间进行转换的映射方案。

    92510

    知识图谱入门(二)

    不过有些时候,我们希望可以确保数据图的特定部分是完整的(注意与 LCWA 的区别,LCWA 不会对图做验证,而只是进行推理)。...例如,在图 1 中,我们希望确保所有事件都有至少一个名称、地点、起始时间(用户需要得到的最少信息),同时事件的城市的类型被声明为城市(而不是直接推理)。...我们可以通过「验证模式」(validating schema)来定义这些约束,验证数据图是否满足这些约束。总结来看,语义模式用于推理新的图数据,而验证模式则用于验证已有的图数据。...例如,验证模式可以基于语义模式推理的结果进行验证;而语义模式的出现可能会导致验证模式需要调整(属性的数量可能发生变化),这种情况下开放形状可能更加适用。...)的相关描述;而 IRI http://www.wikidata.org/entity/Q2887 则指向节点本身(只是命名空间不同,实际上本例中提供的 IRI 会被重定向到上面的 URL)。

    3.6K52

    基于DotNetOpenAuth实现OpenID 服务提供者

    对于世界上使用非拉丁字母字符集(如日文和希伯莱文)的地区来说,这种语法不是很方便。...如果您只会说英语,您能记住用中文写的一长串地址吗?国际化资源标识符(或 IRI)支持非 ASCII 字符,或者更准确的说是 Unicode/ISO 10646 字符。...对于微軟中国香港.com 来说,它包含 xn--g5tu63aivy37i.com,而 Uri.Host 将包含 Unicode 字符。...启用 IRI 分析 (iriParsing enabled = "true") 后,系统会根据 RFC 3987 中的最新 IRI 规则进行规范化和字符检查。...基于可协同合作的标准协议,WIF以及基于声明的身份验证模式,可以使得在云端或非云端的ASP.NET与WCF的应用程序,实现单点登陆,个性化,联合化,强验证,身份验证委托,以及其他验证功能。

    2.2K100

    「集成架构」2020年最好的15个ETL工具(第一部)

    Xplenty是唯一的Salesforce到Salesforce ETL工具。 最后,Xplenty支持一个Rest API连接器,可以从任何Rest API拉入数据。 # 2) Skyvia ?...Sprinkle的无代码平台使整个组织的所有员工都可以访问数据,而不管他们的技术能力如何。这确保了更快的业务决策,因为业务团队不必再依赖数据科学团队来提供见解。...#5) IRI Voracity Voracity是一个支持云计算的本地ETL和数据管理平台,最著名的是其底层CoSort引擎的“负担得起的体积速度”,以及内置的丰富数据发现、集成、迁移、治理和分析功能...由多线程、资源优化的IRI CoSort引擎提供的转换,或可在MR2、Spark、Spark Stream、Storm或Tez中互换。...Voracity不是开源的,但当需要多个引擎时,它的价格会低于Talend。它的订阅价格包括支持、文档、无限的客户端和数据源,而且还有永久和运行时许可选项可用。

    5.2K20

    【Java】已解决:com.netflix.hystrix.exception.HystrixBadRequestException 不符合Hystrix命令请求的异常

    : 无效参数处理不当:对于无效的用户ID,抛出了 HystrixBadRequestException,而不是在业务逻辑中进行处理。...四、正确代码示例 为了正确处理这种情况,我们可以在业务逻辑中进行参数验证,并在必要时返回适当的错误信息,而不是抛出 HystrixBadRequestException。...ID,并返回了适当的错误信息,而不是抛出异常。...五、注意事项 在编写和使用 Hystrix 命令时,需要注意以下几点: 参数验证:在调用外部服务之前,确保所有参数都经过验证,避免无效参数导致的异常。...异常处理:对于可预见的业务逻辑错误,应在代码中进行适当处理,而不是简单地抛出异常。 代码风格和规范:遵循良好的代码风格和规范,保持代码清晰和可维护。

    30800

    “缺少nocaptcha用户回复码或该码无效”?5步解决网络验证难题

    另一位独立开发者在登录海外云服务平台时,同样遭遇该问题,导致无法部署新的应用程序,项目进度被迫延迟。...当系统未能正确识别用户提交的验证回复码,或根本未获取到回复码时,就会触发该错误提示。而住宅IP质量、验证交互机制、代码逻辑漏洞等,都是引发问题的潜在因素。...5.网站策略变更部分网站会不定期更新验证码机制或反爬策略。若程序未及时适配新规则,就会出现回复码无效的情况。例如,网站从reCAPTCHAv2升级到v3版本,而程序仍沿用旧的验证逻辑。...6.API调用错误通过第三方API获取验证码解决方案时,若API密钥错误、调用频率超限,或返回数据格式异常,都会导致回复码无效。...3.修正代码逻辑验证码解析优化:模拟真实浏览器行为,完整加载验证码页面并获取回复码;格式校验:严格按照网站API文档要求,规范回复码的提交格式,避免因格式错误导致无效。

    19210

    微信公众号发送二维码失败问题解决方案!

    解决方案一、修复AppID和AppSecret配置错误问题原因:微信公众号的AppID和AppSecret在配置文件中被颠倒了。AppID应该以wx开头,而AppSecret是一个长字符串。...(不是分号或逗号)确保添加所有可能的出口IP地址(如错误日志中显示的IP)点击「确认修改」按钮使用微信扫码完成身份验证注意事项:配置生效需要几分钟时间,请耐心等待如果服务器有多个出口IP,需要全部添加到白名单中可以通过...curlifconfig.me命令获取服务器公网IP三、修复代码语法错误问题原因:在passive_reply.py文件中存在重复的代码行和无效的文本"med",导致程序语法错误。...:修复AppID和AppSecret配置错误-确保配置值与微信公众平台一致配置微信公众号IP白名单-允许服务器IP调用微信API修复代码语法错误-确保代码结构正确,没有重复代码和无效文本通过按照本文的步骤进行操作...如果仍然遇到困难,请查看详细的错误日志,或参考微信公众平台的官方文档。

    29910

    Linux系统下virtuoso数据库安装与使用

    其中的Named Graph IRI需要你自己来设定。作为测试我们将其改为http://localhost:8890/test。点击Upload完成上传数据。...之后我们打开Graphs就可以看到我们刚才创建的Named Graph IRI了。 然后我们点开SPARQL就可以进行sparql检索了。...注意其中的Default Graph IRI需要设为你刚刚创建的http://localhost:8890/test。 isql的使用 Virtuoso数据库可以使用数据库的命令管理工具 ISQL。...但是需要注意,Virtuoso的ISQL与系统现有的unixODBC的那个ISQL冲突(会出现[ISQL]ERROR: Could not SQLConnect错误信息),所以需要将virtuoso的bin...总结 Virtuoso我用的不是很熟练,官方文档也不是很友好。国内做关联数据的感觉也不热,相关的资源不太好找。关于Virtuoso数据库的其余的一些问题遇到会再补充。

    2.5K10

    Linux 命令(127)—— wget 命令

    =LOGFILE 将日志信息追加至 LOGFILE,而不是覆盖原 LOGFILE -d, --debug 打印大量调试信息 -q, --quiet 安静模式(无信息输出) -v, --verbose...password=PASS 将 ftp 和 http 的密码均设置为 PASS --ask-password 提示输入密码 --no-iri 关闭国际化 URI(IRI) 的支持 --local-encoding...referer=URL 在 HTTP 请求头包含 Referer:URL --save-headers 将 HTTP 头保存至文件 -U, --user-agent=AGENT 标识为 AGENT 而不是...,对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。...每个文件的下载链接统一存放在一个文件中。 wget -i filelist.txt (7)使用 wget -o 将下载过程中的日志信息存入到日志文件,而不是输出到终端。

    10K10

    【Python】已解决:json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

    这通常发生在从文件或网络请求中读取JSON数据时,尤其是在处理API响应或文件输入时。该错误表明在尝试解析JSON数据时,解析器在输入的第一个字符处就未能找到有效的JSON数据。...无效的JSON格式:文件或字符串内容不是有效的JSON格式,例如缺少必要的括号或引号。 网络请求失败:从API获取数据时,可能因为网络问题返回空响应或HTML错误页面,而不是预期的JSON数据。...数据读取错误:读取文件或数据流时出现错误,导致读取内容为空或无效。...无效的JSON格式:API可能返回HTML错误页面或其他非JSON格式的数据。 四、正确代码示例 为了解决该报错问题,我们可以添加必要的检查和错误处理。...异常处理:使用try-except块捕获JSONDecodeError异常,并提供适当的错误处理机制。 验证响应内容:在处理网络请求时,验证响应的状态码和内容是否符合预期。

    10.2K10

    内核中断子系统介绍

    驱动程序 API 与中断通用逻辑 对于中断事件本身,内核使用 struct irq_desc 进行描述,它包含着所有的信息。而对于中断控制器与中断源的驱动来说,关注的信息都只是其中的一部分。...中断事件从中断源到中断控制器的映射的描述一般事先会静态定义好并存放在设备树源码里,即中断源的设备树节点包含着相连的中断控制器和中断事件对应在中断控制器中断号的信息;而作为驱动程序需要对软件中断号 irq...这两条指令都只对当前 CPU 起作用,而不影响平台上的其他 CPU。x86 中断线的实现原生支持 NMI。...一个外部中断从在外设上产生,依次经过 IRI、CPU interface 并最终通过中断线到达 PE;PE 产生的中断需要先经过 CPU interface 到 IRI,再到目标的 CPU interface...逻辑上,IRI 可以对应多个 PE,因此对于需要被一个特定目标 PE 响应的中断,gicv3 通过引入 affinity routing 机制解决这种路由问题。

    1.7K21

    Python路面平整度检测车辆数据——速度修正

    :均方根值RMS,并建立RMS与路面平整度指标:IRI之间的回归模型。...目前该技术方案的难点在于,对于同一IRI值的路面,若驾驶同一车辆以不同的行驶速度驶过,测得的振动数据统计指标也会不同,即车辆行驶速度是影响检测结果的主要因素之一。...在标定工作中,车辆会被要求已恒定速度行驶进行标定,而实际测量时,车辆的速度往往会随道路交通状况、路况、天气等因素无法维持恒定的速度,导致车辆在检测过程中时的车辆行驶速度时快时慢,严重影响检测结果精度。...数据清洗将57天车辆轨迹散点(红)画于图中,同时标注待检测路段桩号点(蓝),发现检测车辆并不是完全按照预定路线进行检测,有诸多路段是多检路段,将影响后续计算结果。将相邻桩号点连接形成若干个线段。...从图中可看出不同IRI值路面,检测车辆速度与检测结果统计指标RMS均存在较强的线性关系,对于不同的IRI值路面,其表现出线性的斜率不同。

    67200

    OWASP TOP 10 合集

    三、OWASP低代码十大安全风险 随着低代码/无代码开发平台激增以及被企业广泛使用,产业界提出了一个明确而紧迫的需求,即建立依赖此类平台开发的应用程序相关的安全和隐私风险意识。...API 2:无效的身份认证 身份验证机制通常实施不正确,允许攻击者破坏身份验证令牌或利用实现缺陷暂时或永久假定其他用户的身份,损害系统识别客户端/用户的能力,会损害整体 API 安全性。...API 8:安全配置错误 API 和支持它们的系统通常包含复杂的配置,旨在使 API 更具可定制性。...API 10:不安全的 API 消耗 开发人员偏向于信任从第三方 API 接收的数据而不是用户输入的数据,因此倾向于采用较弱的安全标准。...为了破坏 API,攻击者会攻击集成的第三方服务,而不是试图直接破坏目标 API。

    1.2K50

    URI、URL、URN、IRI,你分得清吗?

    摘录一波官方文档(rfc3305)中的重点 4. IRI 4.1. 摘录一波官方文档(rfc3987)中的重点 1. URL 1.1. 摘录一波官方文档(rfc1738)中的重点 1....(概要:URI 里面通常都是自然语言的表达,但是如果用的不是英语,那只能经过编码进行表达,增加了复杂度和迷惑性) The infrastructure for the appropriate handling...(概要:IRI,国际化资源标识符,扩充了 URI 的语法,拥有更大的字符空间) 2....(概要:IRI 是一串字符,而不是一串8位字节,因为 IRI 不仅会被数字化传输,而且可能写到纸上) 2.1....(概要:很多 IRI 协议其实只有标识资源的用途,并没有获取资源的需求,所以这些是不需要转换为 URL 的。

    1.7K20
    领券