2016-09-06 5 views
1

Ich möchte eine einfache Java-Anwendung machen, und ich möchte CRUDREPOSITORY und mein eigenes Repository verwenden. Ich habe dies:SpringBoot Rest api

@RestController 
@Transactional 
@ExposesResourceFor(Person.class) 
@RequestMapping("/prueba") 
public class PersonController { 

    @RequestMapping(value="/prueba", method=RequestMethod.GET) 
    public String person(@RequestParam(value="id", defaultValue="1") int id) {  
    return "hola"+id; 
} 

} 

dieses:

@RepositoryRestResource 
public interface IClientRepository extends CrudRepository<Client, Long> { 
} 

Das Problem ist, dass die CRUD funktioniert gut, aber ich kann nicht mein localhost anrufen: 8080/prueba/prueba, weil es einen 404-Fehler gibt. Ich habe alles versucht und ich kann nicht darauf zugreifen, bitte hilf mir !!

+0

Wie läufst du das? – chrylis

+0

Als Spring Boot App :) –

+0

Wenn Sie Ihre Feder-Anwendung starten wird es die Anforderungszuordnungen auflisten, die es von Ihren Controllern gefunden und alle automatisch konfigurierten Sachen (d. H. '@ RepositoryRestResource'). Gibt es dort eine Zuordnung für '/ prueba/prueba'? –

Antwort

1

Standardmäßig ruft Spring Data REST REST-Ressourcen im Stamm-URI "/" auf. Es gibt mehrere Möglichkeiten, den Basispfad zu ändern.

mit Frühlings-Boot-1.2+, fügen Sie unten an application.properties:

spring.data.rest.basePath=/api 

In Ihrem Fall: spring.data.rest.basePath =/prueba/prueba , vorausgesetzt, es gibt keine Überschreibung für Server .contextPath in application.properties

Referenz: http://docs.spring.io/spring-data/rest/docs/current/reference/html/

+0

Die ursprüngliche Frage besagt, dass der CRUD gut funktioniert (die REST-Ressource wird angezeigt). Das Problem ist, dass der zusätzliche REST-Endpunkt keinen Wert bei '/ prueba/prueba 'zurückgibt, der in den Annotationen der Controller-Klasse und -Methode definiert ist. –

+0

Die Frage hat nicht gesagt, ob CRUD gut auf Root-Pfad oder die beabsichtigte funktioniert. – Stacky