通过微服务架构,有很多服务之间发生服务通信。来自服务间调用的响应需要进行验证,以确认响应对象是否符合通过开放API规范(Swagger)建立的合同。到REST API的请求对象已由控制器验证,但响应对象在发送之前未得到验证。应该验证吗? 客户需要验证何时收到以及开始处理之前。这样做的目的是避免对所需的服装进行空检查。
示例:
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
char szin[100];
char ertek;
} Adat;
int main()
{
Adat pakli[52];
int a=0;
char szimb[13]= {'A','2','3','4','5','6','7','8','9','1','J','Q','K'};
char szinek[4][100]={"pikk","kor","treff","karo"};
printf("%s\n",szinek[0]);
for(int b=0; b<4; b++)
{
for(int c=0; c<13; c++)
{
Adat d={szinek[b],szimb[c]};
pakli[a]=d;
a++;
}
}
printf("%s %c",pakli[0].szin,pakli[0].ertek);
return 0;
}
在上述示例中,如果将没有电子邮件和电话的用户对象发送到POST,则创建用户调用将失败。 但是/ user / {username}可以返回带有空电子邮件和电话的用户,因为没有验证响应。
最好先验证响应,然后再从服务器发送响应,或者将责任留给客户端进行验证。