2017-04-09 13 views
0

私はspring.ioSpring RepositoryRestResourceのリンクでサーバー名を変更するにはどうすればよいですか?

@RepositoryRestResource(collectionResourceRel = "people", path = "people") 
public interface PersonRepository extends PagingAndSortingRepository<Person, Long>{ 

    List<Person> findByLastName(@Param("name") String lastName); 

} 

私のRESTクライアントが

{ 
    "_links" : { 
    "people" : { 
     "href" : "http://127.0.0.1:8080/people{?page,size,sort}", 
     "templated" : true 
    }, 
    "profile" : { 
     "href" : "http://127.0.0.1:8080/profile" 
    } 
    } 
} 

を返します。しかし、私の質問はありません場所、あるように、これは、実際に作業を行う上でのガイドのオフに基づいて、簡単なRepositoryRestResourceを持っていますhttp://127.0.0.1:8080の部分は_linksから来て、どのように変更できますか?私のアプリケーションがプロダクション(あるいはローカルやdevのような私の環境)に行くと、むしろhttp://api.mydomain.comのようなものを見ることができます。

重要な場合は、プログラムをmvn packageでコンパイルし、サーバー上でスタンドアロンのjarファイルとして実行しています。

答えて

1

URLのホストとポートは、HttpServletRequest#getRequestURL(またはgetRequestURI)を使用して計算されます。したがって、要求を実行するときにクライアントが使用するホストとポートが常に反映されます。

これをapi.yourdomain.comとしてデプロイすると、これがリンクURLに表示されます。

+0

確かにそうです!私たちが展開するとき、私たちは実際にnginxリバースプロキシサーバーを前面に持つDockerコンテナに展開しているので、常にlocalhost:8080からSpringのように見えます。 http://stackoverflow.com/questions/40791634/original-url-when-using-nginx-container-as-reverse-proxyに従ってnginxの設定を変更したところ、期待通りに機能します。 – Mike

関連する問題