MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Java MongoDB POST:415 nicht unterstützter Medientyp

Sie haben zwei Probleme:

  1. Lassen Sie @Consumes(MediaType.APPLICATION_JSON) weg . Ihre Anfrage hat überhaupt nichts mit json zu tun.
  2. @PathParam s sollte durch @RequestParam ersetzt werden s. Die Werte werden als Anfrageparameter (Query-String) gelesen und nicht als Pfadteile.

Außerdem sollten Sie im Anforderungsbeispiel den zusätzlichen / entfernen nach User :

localhost:8080/User?userName=Daniel&...

Um Pfadparameter zu verwenden, sollten Sie der Konfiguration der Ressourcenmethode eine Pfadanmerkung hinzufügen, z. B.:

@RequestMapping("/{userName}/{password}/{phone}/{email}/{roles}

und die Anfrage sollte etwa so aussehen:

localhost:8080/User/Daniel/test/0634554567/daniel/OWNER

Was überhaupt nicht intuitiv ist

Und noch etwas:List<String> roles auf ist falsch. Spring konvertiert nicht in eine Liste von Zeichenfolgen, egal ob Sie Pfad- oder Abfrageparameter verwenden. Sie müssen die Rollen selbst in Arrays aufteilen (wahrscheinlich mit , als Trennzeichen) oder einen Converter bereitstellen .