Java "error": "Not Found", "message": "Нет доступных сообщений", - PullRequest
0 голосов
/ 25 февраля 2019

Я работаю с небольшим приложением Spring, в котором у меня мало значений в базе данных, и я хотел бы получить их с помощью изменяемого вызова.

API здесь,

@RestController
@RequestMapping("/api/v1/products")
public class ProductAPI {

    private ProductService service;

    @Autowired
    public void setService(ProductService service) {
        this.service = service;
    }


@GetMapping("/stock/")
public ResponseEntity<Product> findById(@RequestParam("productId") String productId) {

    Product product = service.findById(productId).get();
    return ResponseEntity.of(Optional.of(product));
}

...........
}

Сервисный вызов,

@Service
public class ProductService {


 private ProductRepository repository;

    @Autowired
    public void setProductRepository(ProductRepository productRepository) {
        this.repository = productRepository;
    }

    public Optional<Product> findById(String id) {

       return repository.findById(id);
    }
}

Класс хранилища,

@Repository
 public interface ProductRepository extends CrudRepository<Product, String>{


 }

Когда я делаюпозвонив с помощью cURL, я получаю сообщение,

   $ curl -X GET http://localhost:8080/api/v1/products/stock?productId=Product%20ID | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   142    0   142    0     0    845      0 --:--:-- --:--:-- --:--:--   850
{
  "timestamp": "2019-02-25T12:19:31.797+0000",
  "status": 404,
  "error": "Not Found",
  "message": "No message available",
  "path": "/api/v1/products/stock"
}

У меня правильно вставлены записи в базе данных.В чем здесь проблема?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Поскольку вы четко упомянули отображение как @GetMapping ("/ stock /") в вашем контроллере, и когда вы пытаетесь получить доступ к ресурсу по пути / стоку, очевидно, что такого отображения нет.Из-за этого вы получаете 404 найденных исключения.

Итак, обновите отображение как @GetMapping ("/ stock").

Счастливого обучения!

0 голосов
/ 25 февраля 2019

Поскольку у вас есть дополнительные / в вашем отображении

@GetMapping("/stock/")

, поэтому, если вы хотите запросить вот так

curl -X GET http://localhost:8080/api/v1/products/stock/?productId=Product%20ID

вам нужно сопоставить как:

@GetMapping("/stock")

в вашей текущей версии правый завиток выглядит так:

http://localhost:8080/api/v1/products/stock/?productId=Product%20ID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...