将Swagger UI调用与Angular Frontend调用区分开

时间:2018-10-12 06:07:44

标签: angular swagger swagger-ui swagger-2.0 swagger-codegen

我有springboot应用程序和一个有角度的前端。我正在使用swagger并从swagger-ui进行API调用。这些API公开为@RestController,因此我也可以从Angular调用它们。 现在,我所有的表单验证都发生在有角的前端,而没有API级的验证。 我的意图是放置API验证,但是如果从有角度的前端执行操作(例如保存表单),则验证将发生两次,第一个是从UI,第二个是从API。我这样做是为了使API验证从swagger-ui进行的调用。 是否可以通过角度前端或swagger-ui进行区分? 这样,如果表单数据是从前端保存的,但我仍会跳过验证,但仍执行对swagger调用的检查并保持其整洁,并且不更改任何实现方式。 招摇提供API吗?

示例代码

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.util.Scanner;
import java.util.Arrays;
public class A106_HelloJavaTest {
public static void main( String[] args) throws IOException{
String string = "Test- " + Arrays.toString(args);
System.out.println(string);
}
}

1 个答案:

答案 0 :(得分:0)

在现代网络应用中,最佳做法是两次验证数据:

  1. 在浏览器中向用户提供即时反馈。
  2. 在服务器上,以确保仅进一步处理有效数据。

服务器上的第二步更为重要,因为它可以确保后端系统的一致性和安全性。对于系统来说,恶意用户可能会通过操纵发送到服务器的请求而获利。

第一步通常仅用于简单验证。

所以我看不出您不应该再次验证数据的任何原因:

  • 您还是要在服务器端实现验证。
  • 如果数据已经在浏览器中正确验证,则不会被拒绝。
  • 对性能的影响很可能会忽略不计。