2014-05-07 2 views
0

Я пытаюсь передать параметр, необходимый в методе отдыха, через URL в Jersey+Spring.Access RestWebservice, передавая параметр по URL-адресу

это мой класс обслуживания.

@Path("/find") 
public class DownLoadService { 

    @Autowired 
    TransactionWork transactionDownload; 

    @POST 
    @Path("/bring") 
    public Response GetFile(String uid) { 
     String result = transactionDownload.BringFile(uid); 
     return Response.status(200).entity(result).build(); 
    } 

} 

Я пытаюсь получить доступ через URL

http://localhost:8080/ProjectName/rest/find/bring'parameter for method getFile??' 

Я не знаю, возможно ли это или нет.

(я использую это в первый раз, может быть глупый вопрос)

Примечание: я доступ к этому услугу легко в сервлет и работает нормально.

+0

'Я не знаю, возможно ли это или нет.' Что происходит, когда вы пытаетесь это сделать? –

+0

405 метод не допускается. –

+0

OK - это потому, что GET не реализован в сервисе и, введя этот URL-адрес в браузере (я предполагаю, что это то, как вы к нему обращаетесь), вы выполняете запрос GET –

ответ

0

Прождав долгое время я нашел этот путь

@GET 
    @Path("/bring/{withUID}") 
    public Response GetFile(@PathParam("withUID") String uid) { 
     String result = transactionDownload.BringFile(uid); 
     return Response.status(200).entity(result).build(); 
    } 

Теперь я могу получить доступ к службе в этом пути.

http://localhost:8080/RESTfulExample/rest/my/bring/AB 
               ^
                parameter I passed to method 

Готовы изучить другой способ сделать то же самое.

+0

Что вы подразумеваете под «лучшим ответом»? Несмотря на то, что ваши URL-адреса довольно странно названы, это способ сделать это, если вы войдете в спокойную дорогу. –

+0

@DirkLachowski Yeap Я понял это после публикации вопроса, но до этого я не знаю, как это сделать, ну, я не знаю, но может быть какой-то другой способ реализовать то же самое _ (я думаю) _ –

+0

Путь в порядке, но вы должны действительно переосмыслить свои имена ресурсов. Все дело в использовании интерфейса RESTful - иметь значимые имена для ваших ресурсов. Чтобы остаться с вашим примером кода, я полагаю, у вас есть какой-то ресурс транзакции. Каждая транзакция идентифицируется uuid и имеет (среди других?) Полезную нагрузку файла. Таким образом, возможным URL может быть '/ transaction//filePayload'. Если вы вызываете это с помощью 'GET', у вас есть естественная семантика получения полезной нагрузки транзакции. Вы можете прочитать об этом в https://restful-api-design.readthedocs.org/en/latest/ –

Смежные вопросы