使用组合键创建Postman删除请求

66bbxpm5  于 2022-12-13  发布在  Postman
关注(0)|答案(1)|浏览(171)

我在Postman工作,我是一个完全的初学者,目前正在学习数据库工作。我已经创建了一个带有小型本地数据库的Web API,并使用C#和Entity Framework填充了我想要的数据。所有的Postman请求都按照设计工作,除了PUT和DELETE请求。在那里我得到了错误信息(405关于put和500关于delete)。我怀疑这些都与同一个问题有关,即我正在使用组合键。
另一方面,500表示我使用的是组合键,而且我只输入一个值。我选择组合键是因为两个表之间存在多对多关系,但是我如何将其输入到删除请求中呢?是否有方法可以格式化此请求的URL(因为如果我在删除请求的主体中放置任何内容,我会不断收到错误405方法不允许)?
我肯定我错过了一些非常明显的东西,因为这感觉不应该那么复杂,但我找不到一个类似的问题已经被问到。
编辑:
代码非常基本,不确定它对问题有什么影响,它看起来像这样;

{
        public int StudentId { get; set; }
        public int CourseId { get; set; }
        public Student Student { get; set; }
        public Course Course { get; set; }
    }

StudentId和CourseId组成了一个复合主键,我正在尝试删除StudentCourse类的一个对象。建议/需要的请求URL是:/API/StudentCourses/{id},我不知道如何输入,因为它是一个组合键。
HttpDelete操作看起来像这样,请注意,这是自动生成的,我完全可以看到它不起作用,因为StudentCourses没有任何要查找的ID,因此FindAsync永远不会通过,因为它不会找到任何东西。
话虽如此,我不知道如何解决这个问题,因为操作本身只要求一个整数,这意味着Postman认识到,在它到达这里之前,我需要主键的更多部分。

public async Task<IActionResult> DeleteStudentCourse(int id)
        {
            var studentCourse = await _context.StudentCourses.FindAsync(id);
            if (studentCourse == null)
            {
                return NotFound();
            }

            _context.StudentCourses.Remove(studentCourse);
            await _context.SaveChangesAsync();

            return NoContent();
        }

        private bool StudentCourseExists(int id)
        {
            return _context.StudentCourses.Any(e => e.StudentId == id);
        }
ylamdve6

ylamdve61#

假设ID是学生ID,并且您正在尝试删除此学生的所有StudentCourse记录

[Route[("~/api/StudentCourses/DeleteStudentCourse/{id}")]
public async Task<IActionResult> DeleteStudentCourse(int id)
 {
var studentCourses = await _context.StudentCourses.Where(e => e.StudentId == id).ToListAsync();

 if (studentCourses == null || studentCourses.Count==0)
 {
     return NotFound();
 }

 _context.StudentCourses.RemoveRange(studentCourses);
 var result= await _context.SaveChangesAsync();

 if (result> 0) return Ok();

  return BadRequest();
}

建议的url

.../api/StudentCourses/DeleteStudentCourse/{id}

相关问题