2013-02-09 2 views
0

하이킹 클럽 웹 사이트 용 Android 앱 빌드와 관련된 새 프로젝트가 있습니다. 웹 사이트는 사용자가 하이킹을 검색하고, 하이킹을 구독하고, 다른 가입자를보고, 주최자에게 연락 할 수있는 로그인 기능을 가지고 있습니다. 원래 사이트는 프런트 엔드가 .asp 페이지 인 MySQL 데이터베이스를 기반으로합니다. 대부분의 데이터는 쿼리 문자열에서 GET 매개 변수로 페이지를 통과합니다.Android 앱으로 기존 웹 애플리케이션 확장

Android 개발에 대한 새로운 내용으로, 몇 가지 자습서를 읽은 후에도 일부가 실제로 나를 혼란스럽게합니다. 나는 REST 웹 서비스에 대한 아키텍처 보스 (baes)를 생각하고 있지만, 극복해야 할 몇 가지 장애물이있다.

외에도 REST를 사용, 다른 옵션을 사용할 수 있습니다

  1. 전화 대신 전용 웹 서비스를 구축하는 응용 프로그램에서 원래 .ASP 페이지를 참조하십시오. 이로 인해 작성해야 할 코드가 훨씬 줄어들고, 로그인 시스템뿐 아니라 원래 비즈니스 로직 (쿼리 e.a.)을 사용할 수 있습니다 (쿠키를 기반으로 한 "remember me"기능 포함). 단점은 응답 코드의 대다수가 쓸데없는 밸러스트 코드 인 앱 GUI에 표시하려면 응답의 (X) HTML 코드를 파싱해야한다는 것입니다. 또한, archtitectorial 관점에서 아주 좋게 느껴지지 않습니다.

  2. SOAP 기반 웹 서비스 사용. 나는 SOAP에 전혀 익숙하지 않으며 모바일 장치의 경우 너무 무겁다.

  3. REST 서비스 사용. 나는이 옵션에 기대고 있으며, SLIM 프레임 워크를 사용하여 이미 작동중인 서비스를 으로 만들었습니다. 그러나 거기에 몇 가지 문제가 있습니다. 첫째, REST는 정의상 무 상태이므로 은 세션을 지원하지 않는 것 같습니다. 처음 로그인 한 후 "내 계정 정보 기억"옵션을 사용하면 사용자가 명시 적으로 로그 아웃하지 않는 한 다시 로그인 할 필요가 없습니다. 은 앱에 처음으로 로그인 한 후 으로 로그인해야합니다.

하지만 어떻게 할 수 있습니까?

첫 번째 옵션은 사용자가 로그 아웃 할 때까지 자격 증명을 로컬에 저장하는 일부 완전 클라이언트 사이트 로그인/로그 아웃 시스템을 설계하는 것입니다. 그리고 각 요청에 대한 자격 증명을 POST 매개 변수로 웹 서비스에 전송하거나 HTTP 인증 요청 헤더에 어떻게 든 전달합니다. 익숙하지는 않지만 말입니다.

두 번째 옵션은 RESt 원칙과 약간 어긋나고 어쨌든 세션 메커니즘을 사용하는 것입니다. 자격 증명을 웹 서비스에 전송하면 쿠키가 만들어져 클라이언트 응용 프로그램으로 전송됩니다. dartabase를 확장 할 수 없으므로 사용자 테이블에 토큰을 저장하는 옵션이 없습니다. 어쩌면 사용자/비밀번호를 암호화하여 앱으로 쿠키로 보내고 이후의 요청마다 해독 할 수 있습니까?

나는 이것에서 조금 길어졌으며, 진지한 제안을 기대합니다!

답변

2

장기적인 관점에서 볼 때 REST 인터페이스를 사용하는 것이 중요하다고 생각합니다.JSoup 및/또는 WebView 접근 방식은 분명히 효과적 일 수 있지만 서버 측면을 완전히 인식하지 못하는 방식으로 모바일 응용 프로그램을 재정의/설계하는 유연성을 갖는 것이 중요합니다. REST는 당신을 도울 것이며 당신은 HTML 페이지를 바꿀 때마다 서버 쪽을 따라 잡을 필요가 없습니다.

Going REST는 앞으로 추가 모바일 애플리케이션을 작성하고 다른 플랫폼에서도 도움이 될 것입니다. iOS, 로드맵에 포함되어있는 경우

+0

감사합니다.이 전략을 따를 계획입니다. 각 사용자 별 요청과 함께 사용자 이름/암호 자격 증명을 데이터 가져 오기 작업의 GET 매개 변수로 전달하여 웹 서비스를 확장했습니다. 매우 안전하지는 않지만 지금은 작동합니다. 따라서 대부분의 비즈니스 규칙은 .asp 페이지 뒤에 숨겨져 있기 때문에 다시 작성해야하는 문제가 있습니다. 그 비즈니스 규칙이 하나의 공통된 장소에 배치 될 수 있으면 좋겠지 만, 기존 웹 애플리케이션은이 경우에 다시 작성되어야한다고 생각합니다 ... – klausch

+0

오래된 스레드이지만 제안 된 방법으로이 문제를 해결 했습니까? 비슷한 일을하고 있지만 ASP 세션을 지속하기 위해 Google의 Volley와 어려움을 겪고 있습니다. – Jammo

0

jsoup을 사용하면 Android 앱에서 html 페이지를 구문 분석하고 웹 페이지 정보를 재구성 할 수 있습니다.이 옵션을 사용하면 신속하게 앱을 개발할 수 있으며 나중에 웹 사이트에 REST 인터페이스를 추가 할 수 있습니다. json에서 데이터를 채 웁니다. html 페이지를 구문 분석하지 않으려는 경우 WebView를 사용하여 웹 페이지를 완성 할 수도 있습니다.

+0

답장을 보내 주셔서 감사합니다. 실제로이 문제는 제가 옵션 # 3에서 설명한 내용이며, Jsoup에 대한 가장 좋은 도구로 읽었습니다. 이 옵션을 대체 옵션으로 유지하지만 앞으로도 REST에 대한 로그인/세션 문제를 처리 할 수있는 방법을 찾고자합니다. – klausch

+0

죄송합니다. 옵션 # 1을 (를) 의미했습니다. – klausch

0

내가 말한 것처럼 REST 아키텍처를 사용하는 것이 좋습니다. Android 용 나머지 클라이언트 라이브러리는 RESTDroid으로 사용할 수 있습니다. 사용 된 특정 웹 서비스 (이 경우 Parse.com)에 필요한 특수 헤더가있는 구현 예가 있으므로 가이드를 살펴보십시오.

관련 문제