我正在改进现有的API,并且要求提供一种可以接受多个搜索条件并基于这些条件执行查询的单一get方法。
我正在使用Spring MVC。get方法签名:
@GetMapping("/subscribers")
public ResponseEntity<List<SubscriberDTO>> getAllSubscribers(Pageable pageable, @RequestBody List<SearchCriteria> lstSearchCriteria)
Run Code Online (Sandbox Code Playgroud)
该实现按预期在邮递员上进行了测试
现在我要去Angular实现前端,但是我找不到通过HttpClient Get方法发送正文的方法。
我有点卡住。我应该在标题上发送搜索条件吗?还是有更好的方法呢?
我需要发送带有正文的获取请求。我使用的是 Angular HttpClient。我知道 get 方法不允许发送正文,所以我正在尝试请求方法,但我不明白如何使用它。
我能够在没有正文部分的情况下从下面的示例中获取数据,但我确实需要以 JSON 格式发送正文。
request(req?: any): any{
const options = createRequestOption(req);
return this.http
.request<ISubscriber[]>("GET", this.resourceUrl,
{
body: '[{"key": "phoneLineType", "operation": ">", "value": "200"}]',
headers: new HttpHeaders({'Content-Type' : 'application/json'}),
params: options,
observe: 'response'
});
}
Run Code Online (Sandbox Code Playgroud) 我知道那里有很多类似的线程,但我无法从这些线程中弄清楚如何克服这个问题。
我有 3 个类别的汽车、品牌、颜色。一辆汽车只有一个品牌和一系列颜色。品牌有一个汽车清单。颜色没有任何关系。
为简单起见,未提供 Getter、Setter、ToString 和构造函数。我能够将对象保存到数据库中,并且数据库已经填充。
@Entity
@Table(catalog = "spring_project")
public class Car {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String model;
@ManyToMany(cascade=CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable( name = "car_color", catalog = "spring_project",
joinColumns = { @JoinColumn(name = "car_id") },
inverseJoinColumns = { @JoinColumn(name = "colors_id") }
)
private List<Color> colors = new ArrayList<>();
@ManyToOne(cascade=CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name="brand_id", referencedColumnName="id")
private Brand brand;
Run Code Online (Sandbox Code Playgroud)
@Entity
@Table(catalog = "spring_project")
public class Brand {
@Id
@GeneratedValue(strategy …Run Code Online (Sandbox Code Playgroud)