当前位置: 首页 > 知识库问答 >
问题:

通过Syncfusion Datamanager为多部分/混合post构建Spring控制器

莘绍元
2023-03-14

您好,我目前正在尝试构建一个Spring Boot后端以与SyncFusion的Datamanager匹配(据我所知,他们为后端构建留档纯粹是为了. NET。)我已经设法让GET功能正常工作,因此我的数据类型映射是正确的,但发布会导致一些问题。具体来说,DataManager似乎发布了一个multipart/混合,其中包括我试图持久化的JSON对象以及某种批处理文件(我不关心)。由于我无法修改datamanager,我需要在Spring中想出一种方法来纯拉出JSON。我相信这真的很简单,但我对此相当陌生,找不到任何其他以前提出的与我当前情况相匹配的问题。这是Chrome开发人员工具中列出的请求详细信息的副本。

全体的

***请求URL:http://localhost:8082/schedule/$批处理

申请方式:POST

状态代码:415

远程地址:[:::1]:8082

推荐人策略:降级时无推荐人

响应标题

访问控制允许标头:授权、内容类型

访问控制允许方法:POST、PUT、GET、OPTIONS、DELETE

访问控制允许原点:*

访问-控制-最大-年龄:3600

内容类型:应用程序/json

日期:2019年11月22日星期五14:38:39 GMT

传输编码:分块

不同:起源

Vary:访问-控制-请求-方法

更改:访问控制请求标头

请求标头

接受:application/json、text/javascript、/;q=0.01,应用程序/json

接受编码:gzip、紧缩、br

接受语言:en-US,en;q=0.9

连接:保活

内容长度:358

内容类型:多部分/混合;边界=批次\u dddabc0b-930c-47fc-b7e5-934999f0adc9

主持人:localhost:8082

产地:http://localhost:4200

裁判:http://localhost:4200/main/schedule

Sec Fetch模式:cors

Sec Fetch站点:相同站点

用户代理:Mozilla/5.0(Windows NT 10.0; Win64; x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/78.0.3904.108Safari /537.36

请求有效载荷

--<--pl hd--0/>-930 c-47 fc-b 7 e 5-934999 f 0 adc 9

内容类型:应用程序/http;msgtype=请求

POST/api/null HTTP/1.1

内容类型:application/json;字符集=utf-8

主持人:localhost:4200

{主题:m,id:4,开始时间:2019-11-21T06:30:00.000Z,结束时间:2019-11-21T07:00:00.000Z,IsAllDay:false}

--批号:dddabc0b-930c-47fc-b7e5-934999f0adc9--***

这是我的控制器的副本,它目前的状态。(基本上是为了接受常规应用程序/json帖子)

import java.util.List;

import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.quietmodebackend.models.Appointment;
import com.quietmodebackend.repos.ScheduleRepository;

@CrossOrigin
@RestController
@RequestMapping("/schedule")
public class ScheduleController {

    @Autowired
    ScheduleRepository myRepo;

    @GetMapping
    public List<Appointment> getAppointments(HttpServletResponse response){

        response.setStatus(200);
        return myRepo.findAll();
    }

    @PostMapping("/$batch")
    public Appointment postAppointments(HttpServletResponse response, @RequestBody Appointment appointment){
        return myRepo.save(appointment);
    }


}

任何帮助都将不胜感激。

共有1个答案

马博学
2023-03-14
Dear Customer,

Syncfusion Greetings

Scheduler CRUD actions support is not provided for WebApiAdaptor which could be the cause and for the same we already logged the below feature request.

https://www.syncfusion.com/feedback/2373/batch-handler-support-for-asp-net-core-while-using-webapi-adaptor

Kindly use UrlAdaptor like below sample.

Sample: https://stackblitz.com/edit/angular-ysiqa8-9s3lef?file=app.component.ts
Service: https://www.syncfusion.com/downloads/support/directtrac/general/ze/ej2-schedule-crud-1800404263 

 private dataManger: DataManager = new DataManager({
    url: "http://localhost:25255/api/Batch", 
    crossDomain: true, 
    adaptor: new UrlAdaptor 
  });

Note: Keep the Service project in runnable state.

Regards,
M.Vinitha devi
 类似资料:
  • 有一个只接受内容类型multipart/mixed的REST API。 正在尝试使用restTemplate并生成内容类型为multipart/mixed的REST请求。如果注释setContentType restTemplate默认为多部分/表单数据。 但运气不好,举个例子,我如何调用API生成多部分/混合请求? 也许这个有帮助

  • 我使用Spring引导上传文件。文件大小通常约为2GB,我们不能使用默认的Spring引导或,因为服务器具有有限的资源(磁盘空间)或用于缓冲的内存。所以我们想获取文件输入蒸汽并将文件直接存储到云存储中。 我知道spring boot有<code>多部分。已启用属性,因此我可以将其设置为false以跳过spring。但这会全局禁用多部分。是否有人知道是否有方法通过控制器/方法禁用多部分?

  • 我想写一个REST服务,它用一个zipFile和一些json数据来响应,所有的东西都在一个多部分/混合请求中。 现在我尝试使用多部分/混合响应并返回一个MultiValueMap MyMultiValueMap存在以防止类型擦除(泛型)。 这给出了

  • 我正在开发基于Spring 3.2的RESTful服务。我遇到了一个控制器处理混合多部分HTTP请求的问题,第二部分是XML或JSON格式的数据,第二部分是图像文件。 我正在使用@Request estPart注释来接收请求 User.java会这样- 据我所知,使用@RequestPart注释,我希望根据XML多部分部分的内容类型对其进行评估,并最终将其解编组到我的用户类中(我使用的是Jaxb2

  • 混合控制器在单一的基础控制器里, 汇集了 REST 控制器与 Template 控制器两者的功能。 更多关于 Template 或 Rest 功能的资讯,请见 Controller_Rest 或 Controller_Template 页面。

  • 我需要向我的Spring控制器发送一个带有json的文件。我有以下控制器类: 但当我在服务器上使用以下命令时: 我得到415不支持的媒体类型! 有线索吗?