2013-03-13 4 views
8

api 탐색기를 완전히 끄거나 액세스를 제한 할 수 있습니까?api 탐색기를 비공개로 설정

브라우저에서 실행 된 요청이 실패한 일부 로그를 내 앱에서 발견했습니다. 내 API는 Android 앱에서만 사용되므로 어디서 왔는지 알 수있는 유일한 곳은 API 탐색기입니다. 또한 API 액세스는 1 웹 및 1 안드로이드 클라이언트 ID로 제한됩니다.

답변

4

불행히도 없습니다. API 탐색기는 실제로 백엔드의 일부가 아닌 API와 관련된 Discovery Service를 사용하므로 해당 URI에 대해 인증 또는 공개 여부를 지정할 수 없습니다.

디스커버리 서비스에서 list 방법은 기본으로하여 응용 프로그램을 사용하여 APIs Explorer 응용 프로그램의 목록을 생성하는 데 사용됩니다 :

discovery.apis.list :

your-app-id.appspot.com/_ah/api/discovery/v1/apis

때 사람 검색 서비스의 getRest 메소드를 사용하여 apiNameapiVersion에 대한 전체 검색 문서가 검색됩니다.

discovery.apis.getRest :

your-app-id.appspot.com/_ah/api/discovery/v1/apis/{apiName}/{apiVersion}/rest

+0

당신이 응용 프로그램의 관리자 측에 대한 권장 사항이 있습니까 체크 아웃? 내가/_ah/spi/{service class name}. {method}와 (과) 비슷한 것을 보았습니다. /_ah/spi/.*와 일치하는 여러 핸들러를 추가해도 괜찮습니까? – 12345

+1

처리기 메서드에서 관리 부분을 구현하는 것이 좋습니다. 'endpoints.api_server'는 모든 API를위한 단일 핸들러를 생성하기위한 것입니다. – bossylobster

+1

하지만 다른 사람이 내 데이터베이스 (Datastore)를 모두 삭제하지 못하도록하려면 어떻게해야합니까? – InsaurraldeAP

0

엔드 포인트는 인증을 쉽게 당신은 현재 사용자를 얻을 수 있습니다. auth를 사용하여 사람들이 개인 apis를 엉망으로 만들지 않도록해야합니다. 그렇지 않으면 사람들이 어떤 종류의 게시물을 추적하거나 어쨌든 보내려는 요청을받을 수 있습니다. auth는 API를 비밀로 유지하려고 시도하는 것이 아니라 항상 좋은 아이디어입니다.

비밀 제품을 만들고 경쟁자가 알기를 원하지 않는 경우 백엔드 및 클라이언트에서 일부 읽을 수없는 방법을 사용하여 읽을 수 없도록 만들 수 있습니다.

api를 사용하는 사용자는 데이터베이스를 손상시키지 않아도됩니다. 그렇지 않은 경우 사용자는 어리석은 사용자에 대해서만 중단해야합니다. 백엔드가 중단되지 않도록 apis가 어떻게 사용되는지에 대한 클라이언트의 논리가 나쁜 생각입니다. 백엔드 api는 스스로를 관리해야하며 사용 방법이나 사용 이유 및 사용 목적에 대해 걱정하지 않아야합니다. 당신이 (가) API의 실행을 방지 할 수있는 방법을 찾고 있다면

+0

저는 사람들이 이것을 보았지만 GAE의 엔드 포인트가 Google 계정없이 인증을 요구하지만 개발자 콘솔에 지정된 클라이언트 ID 만 필요로하는 예제를 지적 할 수 있습니까? 예를 들어 제 경우에는 JavaScript에서 사용하는 API가 있지만 API를 사용하는 다른 사용자는 필요하지 않습니다. 예를 들어 내 API 중 하나가 토큰이 지정된 설문 조사에서 응답을 반환합니다. API를 사용하는 임의의 사람이 설문 조사에 대한 모든 응답을 버리는 것을 원하지는 않지만 사이트의 익명 사용자는 토큰이 주어지면 설문 조사에 대한 응답을 볼 수 있어야합니다. – SimplicityGuy

+0

흥미로운 점 - 당신은 토큰을 틀림없이 만들 수 있습니까? 클라우드 프로젝트와 관련된 개발자에게 API 액세스를 제한하는 것이 좋을 것입니다. (또한 특정 도메인에 대한 액세스 권한 부여). 백엔드 IMO에서 엔드 포인트를 쉽게 랩핑 할 수있는 엔드 포인트의 기능은 너무 많습니다. –

+0

예, 토큰은 의심 할 여지가 없습니다 (소금에 절인 시간 기반의 독특한). 지난 1 시간 동안 클라이언트 ID를 사용하려고했지만 API에 대한 액세스를 차단할 수는 있지만 Google 로그인 페이지는 피할 수없는 것처럼 보였습니다.하지만 원하는 것은 기본적으로 무엇을 로그인해야합니까? 이미 API를 호출 할 수있는 위치에 제한이있는 클라이언트 ID입니다. – SimplicityGuy

관련 문제