Die status zurückkehren Anfrage, ungültige URL für verschiedene http-Methoden?

Wenn eine REST-Anwendung eine Anforderung empfängt, für eine nicht existierende Ressource, sollte es immer wieder ein 404 Nicht Gefunden?

Sollte es wieder einen anderen status für jeden HTTP-Methoden GET, HEAD, POST, PUT, DELETE, OPTIONS oder TRACE?

Frühjahr wieder ein 404 für GET und HEAD eine 200 OK für OPTIONS, und ein 405 Method Not Supported für die anderen. Ist das falsch?

z.B. Das Spring-Boot-Anwendung zeigt die unterschiedlichen Reaktionen für die Anforderungen an eine mis-typed-URL (Grüße statt Gruß).

@RestController
@SpringBootApplication
public class Application {

    private static Logger log = LoggerFactory.getLogger(Application.class);

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);

        RestTemplate restTemplate = new RestTemplate();
        String badUrl = "http://localhost:8080/greetings";
        for (HttpMethod httpMethod : HttpMethod.values()) {
            try {
                restTemplate.execute(badUrl, httpMethod, null, null);
            } catch (Exception e) {
                log.error("Failed to " + httpMethod + " -- " + e.getMessage());
            }
        }
    }

    @RequestMapping("/greeting")
    public String greeting() {
        return "hello";
    }
}

Protokollierten Ausgabe:

Nicht BEKOMMEN -- 404 Nicht Gefunden

Gescheitert-an-KOPF -- 404 Nicht Gefunden

Fehler beim POST -- 405-Methode Nicht Erlaubt

Nicht die STELLEN -- 405-Methode Nicht Erlaubt

Failed to PATCH -- I/O-Fehler auf PATCH-Anforderung für"http://localhost:8080/greetings": "Ungültige HTTP-Methode: PATCH; nested exception is java.net.ProtocolException: Ungültiges HTTP-Methode: PATCH

Fehler beim LÖSCHEN -- 405-Methode Nicht Erlaubt

OPTIONS-Anfrage für "http://localhost:8080/greetings" ergab 200 (OK)

Fehlgeschlagen zu verfolgen -- 405-Methode Nicht Erlaubt

InformationsquelleAutor whistling_marmot | 2016-02-14

Schreibe einen Kommentar