我正在设计一个 REST api,允许客户端 POST(创建)资源。我们称我的资源为 is Subscription,我的 REST api 接受一个名为 POST 请求的 Dto,Subscription
该 POST 请求需要与将在服务器端进行验证的验证码令牌一起发送。
我的问题是哪里是放置验证码令牌的最佳位置,我正在考虑一些选项:
SubscriptionSubscription并携带字段captchaToken欢迎任何其他建议。
谢谢。
我是后端开发新手,正在开发一个拥有庞大用户群的项目(与 Uber Eats 非常相似)。我们的团队应该开发网络应用程序和移动应用程序(适用于 Android 和 IOS)。由于时间限制和预算,我们决定首先实施 PWA,然后考虑到客户满意度,我们还计划实施本机移动应用程序。
我想知道,在为这种应用程序系统创建后端时,是否值得分别实现两个 API 服务器用于身份验证和其他通用 API 调用,并且与将两者保留在一个 API 中相比,性能是否会有相当大的提高服务器?实现两个原生移动应用后会改变吗?
根据这个官方 kubernetes 文档页面,可以向容器提供“命令”和参数。
该页面出现了 13 次字符串“a command”和 10 次出现“the command”——请注意使用单数。
(除了文件名之外)复数“命令”出现 3 次:
其中一个页面是 Get a Shell to a Running Container,我对此不感兴趣。我对容器的启动命令感兴趣。
其中提到的是在 shell 环境中运行多个管道命令,但是提供的示例使用单个字符串:command: ["/bin/sh"]。
第三次出现在介绍性句子中:
本页展示了在 Pod 中运行容器时如何定义命令和参数。
command所有示例(包括给出或省略时如何交互的解释args)仅显示数组中的单个字符串。它甚至似乎只打算使用单个command,它将接收所有指定的args,因为该字段以单数命名。
问题是:为什么这个字段是一个数组?
我认为 Kubernetes 的开发者对此有充分的理由,但我想不出一个。这里发生了什么?是遗产吗?如果是这样,怎么会这样呢?是面向未来的准备吗?如果是这样,那又是为了什么?是为了兼容吗?如果是的话,为了什么呢?
编辑:
正如我在下面的评论中所写的,我现在能想到的唯一原因是:k8s 开发人员希望实现 和 的交互,command并args允许用户 在单个参数中指定命令的所有部分具有跨command和的命令范围args。所以本质上是功能和可读性之间的折衷。
谁能证实这个假设?
我正在制作自己的 API,我想知道:如何保护收到的参数?
例子:
brand我有一个具有和属性的汽车模型color。我的端点在有效负载中接收这些参数。通过收到的有效负载,我在数据库中搜索:
car = Car.where(color: params[:color])
# or
car = Car.find_by(brand: params[:brand])
# or writing
Car.first.update!(brand: params[:brand])
Run Code Online (Sandbox Code Playgroud)
但我很担心如果有人尝试使用 SQL 或 XSS 进行利用怎么办?你如何处理这个问题?
我正在使用 Flask 和 Flask-RESTful 扩展开发一个 API。我正在创建端点和资源,但我对资源“url”及其“端点”之间的区别感到困惑。据我了解,URL 本身就是端点。我还阅读了StackOverflow 问题的答案,他们还建议 URL 是端点。
然而Flask-RESTful 文档提到该add_resource方法有一个 URL 参数,并且它还可以接收端点名称。他们甚至提供了这个例子:
api.add_resource(HelloWorld, '/', '/hello')
api.add_resource(Foo, '/foo', endpoint="foo")
api.add_resource(FooSpecial, '/special/foo', endpoint="foo")
Run Code Online (Sandbox Code Playgroud)
我明白他们在做什么,但我还是不明白端点名称的作用。
URL 和端点名称有什么区别?为什么我要设置端点名称?
假设我创建了一个传递对象的方法,该方法将根据传递的对象执行操作.我该如何识别物体?
我想过使用类名来标识对象,但这可能是不切实际的,因为我可以轻松地更改对象的类名,并在将来的开发过程中产生令人头疼的问题.我对吗?
编辑:例如,我有对象球和炸弹.如果我有另一个叫做墙的物体,墙有解决与墙碰撞的方法(例如碰撞球和炸弹的坐标),但根据碰撞对象(即球和炸弹)有不同的逻辑
既然我们在C#中有扩展方法,那么为了传递默认值,在实现任何类的过程中是否还有任何重点?为什么在重载时可以使扩展方法污染类实现?重载的任何优点(用于传递默认值)?
我正在计算默认参数的选项,因为它强制参数的特定排序(即默认值可以结束)以及默认值在客户端代码中编译并且服务包可能因此而中断的事实.
当在API捆绑包中以1.0.0版本的版本开始时,在向所述包添加新接口之后新版本应该是什么?该白皮书使得关于兼容性这一说法:
显然,二进制兼容性在向后兼容性中起着重要作用.但是,向后兼容性也非常依赖于语义.如果接口的责任发生变化,它仍然可以是二进制兼容的,但不再向后兼容.
同时...
3.micro - 微观部分的差异并不表示任何向后兼容性问题
新接口不会导致其提供程序的任何二进制不兼容性 - 很可能只是省略一个实现.这被认为是包的语义中的"向后不兼容"的变化吗?这是否意味着新版本应该是1.1.0?
versioning osgi api-design backwards-compatibility semantics
考虑这个示例VBScript片段:
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists("D:\Folder\File*.ext") Then ' Finds nothing!
fs.CopyFile "D:\Folder\File*.ext", "D:\OtherFolder\"
fs.Deletefile "D:\Folder\File*.ext"
End If
Run Code Online (Sandbox Code Playgroud)
该FileExists方法证明不支持通配符(*和?).没有FolderExists.我预计wildards只是工作,因为他们工作的优良所有类似的方法在FileSystemObject:CopyFile,CopyFolder,MoveFile,MoveFolder,DeleteFile,DeleteFolder和Get*文件名处理方法一样GetAbsolutePathName.
当然有办法解决这个问题,比如GetFolder迭代它的文件.但FileExists本来会更具可读性,方便性,自然性和一致性.
该fs.FileExists不一致感觉就像一个API设计问题.可能是什么原因?背后有什么想法吗?
我将音频文件托管在服务器上,我希望我的应用程序在身份验证后可以访问。用户发送包含身份验证令牌的GET请求,然后服务器返回二进制音频数据。
据我所知,没有办法将此“ blob”作为音频文件保存到文件系统。当前在react-native中实现的抓取功能不支持Blob:link
...而且expo也不支持理想的react-native-fetch-blob库:link
此外,我看不到任何从服务器流式传输音频文件的方法。包含有expo的音频库允许从URL(例如http://example.com/myaudio.mp3)流式传输音频,但是我看不到将授权标头附加到请求的任何方法(例如“ Authorization”:“不记名[我的令牌]“)。
是否可以通过下载和保存音频Blob或从包含请求中包含授权标头的URL进行流传输来实现此目的?我可以将项目与世博会分离,但我想把它留作最后的手段。