我使用 RESTAPI 将 otp 号码发送到给定的电子邮件,它总是返回 404 错误消息并带有以下响应,
{
"timestamp": "2024-02-12T11:50:31.545+00:00",
"status": 404,
"error": "Not Found",
"path": "/api/v1/otp/sendOTP"
}
我添加了我的
OTPController
课程,
package com.example.chatappAPI10.Controllers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
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.example.chatappAPI10.DTO.OTPDetails;
import com.example.chatappAPI10.Service.SendOTPNumber;
@RestController
@RequestMapping(value = "api/v1/otp")
public class OTPController {
@Autowired
private SendOTPNumber sendOTPNumber;
@SuppressWarnings("rawtypes")
@PostMapping(value = "/sendOTP")
public ResponseEntity sendOTP(@RequestBody OTPDetails otpDetails) {
System.out.println("otpDetails.getToMail()");
return sendOTPNumber.sendOTPNumber();
}
}
另外,我添加了我的
SendOTPNumber
课程,
package com.example.chatappAPI10.Service;
import java.util.Random;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
import com.example.chatappAPI10.DTO.OTPDetails;
import com.example.chatappAPI10.DTO.ResponseDTO;
@Service
public class SendOTPNumber {
@Autowired
private JavaMailSender javaMailSender;
@Autowired
private ResponseDTO responseDTO;
@Autowired
private OTPDetails otpDetails;
private void setRandomOTP() {
Random random = new Random();
int randomNumber = random.nextInt(9000) + 1000;
otpDetails.setOtpNumber(String.valueOf(randomNumber));
}
private void setFromEmail() {
otpDetails.setFromEmail("[email protected]");
}
private void setSubject() {
String subjectOfEmail = "Hello Chat up! OTP verification";
otpDetails.setMailSubject(subjectOfEmail);
}
@SuppressWarnings("rawtypes")
public ResponseEntity sendOTPNumber() {
try {
SimpleMailMessage otSimpleMailMessage = new SimpleMailMessage();
setFromEmail();
setRandomOTP();
setSubject();
otSimpleMailMessage.setFrom(otpDetails.getFromEmail());
otSimpleMailMessage.setSubject(otpDetails.getMailSubject());
otSimpleMailMessage.setText(otpDetails.getOtpNumber());
otSimpleMailMessage.setTo(otpDetails.getToMail());
javaMailSender.send(otSimpleMailMessage);
responseDTO.setCode("200");
responseDTO.setMessage("Success");
responseDTO.setOtpNumber(otpDetails.getOtpNumber());
return new ResponseEntity<>(responseDTO, HttpStatus.ACCEPTED);
} catch (Exception e) {
responseDTO.setCode("404");
responseDTO.setMessage(e.getMessage());
return new ResponseEntity<>(responseDTO, HttpStatus.BAD_REQUEST);
}
}
}
我没有添加我的 DTO 类,因为我认为这些对于这个问题并不重要, 我在 stackoverflow 中尝试了许多与此问题相关的选项,但都无法解决我的问题,我在下面添加了这些解决方案,
尝试在请求映射中添加斜杠“/”。它应该看起来像这样:/api/v1/otp。