REST API 检查电子邮件是不是存在

Posted

技术标签:

【中文标题】REST API 检查电子邮件是不是存在【英文标题】:REST API check if email existsREST API 检查电子邮件是否存在 【发布时间】:2022-01-20 06:46:46 【问题描述】:

我想检查用户是否存在数据库中的电子邮件。我想在 API 中执行此操作,它应该简单地返回 true 或 false。这就是我得到的;当用户存在时,如果用户在 DB 中不存在,则返回 true,则返回 500 内部服务器错误。我怎么能解决这个问题?提前致谢

    public IHttpActionResult GetUserEmail(string Email)
    
        var User = (db.Users
        .Where(p => p.Email == Email)
        .First());

        if (User == null)
        
            return Ok(false);
        
        else
        
            return Ok(true);
        
    

【问题讨论】:

.First() 如果db.Users.Where() 结果中不存在,将抛出异常。您需要使用FirstOrDefault()。 ***.com/a/1024580/1910735 这能回答你的问题吗? When to use .First and when to use .FirstOrDefault with LINQ? 是的,非常感谢,现在可以使用 我希望您不是针对生产进行开发,因此显示 500 错误的页面还应该显示实际异常和堆栈跟踪,以便您可以调试它。您是否收到错误,它告诉您什么? 【参考方案1】:

上面已经给出了答案,我留下一个示例代码块作为示例。 :)

    var User = db.Users.FirstOrDefault(p => p.Email == Email);
    if (User == null)
        
            return Ok(false);
        
        else
        
            return Ok(true);
        

// 或

 var User = db.Users.Any(p => p.Email == Email);
 if (!User)
 
   return Ok(false);
 
 else
 
  return Ok(true);
 

【讨论】:

【参考方案2】:

@Dawood Awan 在 cmets 中提到的更改的代码块 –

public IHttpActionResult GetUserEmail(string Email)

    var User = (db.Users
    .Where(p => p.Email == Email)
    .FirstOrDefault());

    if (User == null)
    
        return Ok(false);
    
    else
    
        return Ok(true);
    

【讨论】:

以上是关于REST API 检查电子邮件是不是存在的主要内容,如果未能解决你的问题,请参考以下文章

如何检查MySQL中是不是存在一行? (即检查电子邮件是不是存在于 MySQL 中)

如何检查MySQL中是不是存在行? (即检查电子邮件是不是存在于 MySQL 中)

检查电子邮件是不是有效且存在

检查电子邮件是不是存在的最佳方法

Wordpress REST API:如何检查 id 是不是存在于 url

检查电子邮件地址是不是存在[重复]