2017-04-01 1 views
0

레일즈 5로 API를 빌드하고 curl 또는 httpie과 함께 명령 행에서 로컬로 게시물 요청을 테스트하려고합니다.Rails 5를 사용하여 curl 또는 httpie에 로컬로 서브 도메인 액세스하는 방법

그러나 내 경로에 constraints subdomain: 'api'을 사용하고 있으며 curl과 httpie는 그 점을 좋아하지 않습니다. Chrome을 열고 http://api.localhost:3000/v1/users으로 가면 유효한 응답을받습니다. 때문에 하위 도메인에

http: error: ConnectionError: HTTPConnectionPool(host='api.localhost', port=3000): 
Max retries exceeded with url: /v1/users (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection 
object at 0x105732550>: Failed to establish a new connection: [Errno 8] 
nodename nor servname provided, or not known',)) while doing GET request to 
URL: http://api.localhost:3000/v1/users 

나는이 거의 certin 해요하지만 난 컬 또는 httpie와 하위 도메인을 사용하는 의미 어디서나 어떤 문서를 찾을 수 없습니다 그러나 httpie와 나는이 오류가 발생합니다. 어떻게해야합니까?

답변

0

나는 그것을 알아 냈다! 내가 한 일은 다음과 같습니다.

저는 리눅스 환경을 사용하기 때문에/etc/hosts에 가서 api.stevenlocal.com이라는 사용자 정의 로컬 호스트 이름을 추가했습니다.

# Allow constraint subdomain for routes 
    config.action_dispatch.tld_length = 1 

1 최상위 도메인 (이 경우 한주기 후가 될 것입니다 레일을 알려줍니다 그것을 설정 : environments/development.rb 내 레일 응용 프로그램에서

나는 다음 줄이 1로 설정 확인했다 , stevenlocal은 최상위 도메인이며 .com) 이후입니다. 레일스는 본질적으로 두 개의 기간 (subdomain(first-period)top-level-domain(second-period)com) 후에 서브 도메인을 찾는다는 것을 알고 있기 때문에 중요합니다. 레일스는 기본적으로이 줄을 1로 설정했지만 이전에 변경했습니다.

이제 명령 줄에서 http api.stevenlocal.com:3000/v1/users을 시도하면 예상대로 작동합니다. http는 httpie 명령 줄 도구와 함께 사용되는 곱슬 곱슬 한 명령입니다.

관련 문제