PATCH方法应该返回响应主体中资源的所有字段吗?
或者它应该只返回更新的字段?
我正在读这个
例如,如果它仅返回更新的字段,则用户可以知道在服务器中更新了哪些字段,而用户更新了一些字段.
**Users resource representations**
name: string
age: number
createdon: date
modifiedon: date
Run Code Online (Sandbox Code Playgroud)
PATCH /users/{userId}
Request body
{
name: 'changedname',
}
Run Code Online (Sandbox Code Playgroud)
Response body Case1
{
name: 'changedname',
age: 20,
createdon: 2016-01-01,
modifiedon: 2016-06-09
}
Run Code Online (Sandbox Code Playgroud)
Response body Case2
{
name: 'changedname',
modifiedon: 2016-06-09
}
Run Code Online (Sandbox Code Playgroud) 我有一个复杂的对象,如:
public class BusinessUnit
{
public TradingDesk TradingDesk { get; }
public string Division { get; }
public BusinessUnit(string division, TradingDesk tradingDesk)
{
Division = division;
TradingDesk = tradingDesk;
}
}
Run Code Online (Sandbox Code Playgroud)
我想将其映射到平面类型:
public class Row
{
//TradingDesk properties
public string TraderFirstName { get; set; }
public string TraderLastName { get; set; }
public string TradingDeskName { get; set; }
public string Division { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我已经配置AutoMapper为TradingDesk:
CreateMap<TradingDesk, Row>().ForMember(vm => vm.TradingDeskName, op => op.MapFrom(src => …Run Code Online (Sandbox Code Playgroud) 我使用Google ID 令牌让用户登录我的网络服务。作为验证从 Google 收到的令牌的一部分,网络服务会email_verified = true在令牌的有效负载中检查该令牌。
我的一些用户使用非 Gmail、非 Google Apps 电子邮件地址注册了 Google 帐户。他们确实点击了谷歌在注册后发送给他们的电子邮件中的链接,以验证他们的电子邮件地址。
当这些用户尝试登录我的网络服务时,我会获取email_verified = false令牌的有效负载。
这是什么意思?我可以/应该在验证令牌时忽略它吗?
我有一个资源,本质上需要另一个资源作为创建的输入数据。例如:
POST /v1/NewResource
body: {InputResource}
Run Code Online (Sandbox Code Playgroud)
然而,有趣的是,创建 NewResource 的成本很高,而且资源本身是暂时的(不是持久的)。有些消费者可能只需要部分资源。因此,我确实有两个输入参数:创建所需的数据,然后处理来自消费者的指令以控制实际完成的工作量。
我看到两条路(至少):
POST /v1/NewResource?detailLevel=base|full
body: {InputResource}
Run Code Online (Sandbox Code Playgroud)
与
POST /v1/NewResource
body: {Request.detailLevel and Request.InputResource}
Run Code Online (Sandbox Code Playgroud)
第一个甚至是一个选择吗?有人有任何偏好/经验吗?让有效负载只是所需的数据并与处理指令分开,有一定的优雅性。我意识到这里没有正确或错误的答案,只是对社区的想法感到好奇。
我们正在尝试将我们的单体核心拆分为微服务,并添加一些使用消息系统(例如 Kafka)相互连接的新服务。
下一阶段是创建 API 端点,以便通过 Api 网关在移动应用程序和微服务之间进行通信。
开发 API 网关以向/从微服务传输数据的好解决方案是什么?
感谢您的建议和一些想法
目前,我正在通过一种方法从数据库检索数据,该方法检索IQueryable<T1>、过滤、排序,然后对其进行分页(基本上所有这些都在数据库上),然后将结果返回到 UI 以在分页表中显示。
我需要集成另一个数据库的结果,分页似乎是主要问题。
我目前在这两种解决方案之间左右为难:
我正在寻找一种性能良好的算法。理想的解决方案可能是它们之间的组合(在数据库级别缓存+过滤),但我目前还没有考虑这一点。
我正在尝试对一些可能处于以下(推断)状态之一(按此顺序)的数据进行排序:
live(有效StartDate,空EndDate);draft(空StartDate);ended(有效EndDate)。我在 a 上继承了以下语法IQueryable:
iQueryableData
.OrderBy(t => t.StartDate == null ? 1 : (t.EndDate == null ? 0 : 2))
.ThenByDescending(t => t.StartDate)
.ThenBy(t => t.PartnerId)
Run Code Online (Sandbox Code Playgroud)
这很好,因为它根据某些IF语句对表的前 3 列之一进行排序。
现在我需要重写它以在不同(但相似)的模型上在内存中工作(所以只是LINQ,没有IQueryable)。以下是上述查询的大致翻译:
data
.OrderBy(t => t.StartDate == null
? t.EndDate // DateTime
: (t.EndDate == null
? t.Id // integer
: t.Name // string
)
)
Run Code Online (Sandbox Code Playgroud)
这显然无法编译,因为
CS0173 C# 条件表达式的类型无法确定,因为“int”和“string”之间没有隐式转换 …
如何使用Rest Assured在GET URL中传递查询字符串参数?
网址是: http://example.com/building
我的查询字符串是:
globalDates:{"startMs":1473672973818,"endMs":1481448973817,"period":90}
limitTo:6
loadTvData:true
startFrom:0
userId:5834fb36981baacb6a876427
Run Code Online (Sandbox Code Playgroud) api automated-tests restful-architecture rest-assured web-api-testing
我一直在解析ISO8601 TimeSpan值一段时间,直到我遇到一个导致我的代码抛出System.FormatException:
TimeSpan ts = XmlConvert.ToTimeSpan("P2M2W5D");
Run Code Online (Sandbox Code Playgroud)
看看ISO8601标准,它似乎是一个正确的输入,也没有任何含糊之处(M明确指的是几个月,而不是几分钟).
System.FormatException was unhandled by user code
HResult=-2146233033
Message=The string 'P2M2W5D' is not a valid TimeSpan value.
Source=System.Xml
Run Code Online (Sandbox Code Playgroud) 通过本教程,我成功地将P4Merge与TortoiseGit连接起来.
但是,鉴于我将大部分时间花在IDE(Visual Studio 2015)上,我还想将此设置为使用P4Merge作为差异工具.
以前(也就是在使用TFS时),这就足够了.但是,鉴于我现在正在使用git,VS中没有选项以这种方式连接它:
然而,我发现了如何通过配置用户工具的Visual Studio 2015年工具开发命令提示符和tf diff /configure,自顾自地在前面的教程与.bat文件,但它似乎并没有为我做任何事.
我可能错过了一些东西,但希望鉴于现在流行的P4Merge,VS(&git)有多受欢迎,必须有人能够实现这一目标.
c# ×3
rest ×3
api ×1
api-design ×1
automapper ×1
caching ×1
datetime ×1
event-driven ×1
git ×1
google-oauth ×1
http ×1
http-verbs ×1
httprequest ×1
iqueryable ×1
iso8601 ×1
jwt ×1
linq ×1
merge ×1
p4merge ×1
pagination ×1
parsing ×1
rest-assured ×1
restful-url ×1
soa ×1
sorting ×1
xml-parsing ×1