2011-02-26 5 views
7

나는 잠시 동안 iOS 앱을 개발 해왔다.하지만 그들은 모두 장치에있는 정보를 다루고있다.나만의 웹 API/웹 서비스를 만드는 방법

내 지식과 내 앱의 매력을 확장하고 싶습니다.

내가 필요한 것은 내 자신의 온라인 SQL 데이터베이스와 API에 대한 모든 정보에 액세스하는 방법에 대한 좋은 자습서입니다.

나는 여러 가지 API (Twitter, Facebook, Google 등)를 사용하여 iOS 측에서 준비가되었습니다.

Google App Engine을 사용하여 구현하고 싶지만 더 나은 방법을 알고 있다면 더 듣기보다 기쁩니다. Java, .net 및 Ruby가 최상의 옵션이라고 들었습니다.

많은 튜토리얼을 온라인에서 찾았지만 스택 오버플로 사용자는 저와 다른 개발자가 더 빠르고 쉽게 배우고 학습하는데 도움이되는 훌륭한 리소스에 대해 잘 알고 있습니다.

이 질문에 대한 답변은 Wb API에 관심있는 모든 개발자에게 훌륭한 자료가 될 수 있다고 생각합니다.

도움 주셔서 감사합니다.

답변

7

IMHO, AppEngine은 실제로 설정/관리 할 필요가 없으므로 훌륭한 선택입니다. 또한 데이터 저장소, 작업 대기열, 사용자 인증, 메시징 등의 강력한 서비스가 사전 패키지로 제공됩니다. 나에게 가장 큰 이점은 스키마가있는 Datastore이므로 앱이 진행됨에 따라 스키마를 지속적으로 업데이트/관리 할 필요가 없습니다. .

서블릿 + SQL 배경의 개발자가 처음에는 다소 고질적 인 프로그래밍 모델을 가지고 있기 때문에 단점이 있습니다. 당신이 처음이기 때문에 그것은 문제가되어서는 안됩니다.

내가 아는 바로는 아래의 모든 조언은 Java입니다. 바라건대 다른 사람들은 다른 플랫폼/언어를 제시하는 답변을 게시 할 것입니다.

  1. 설정 웹 서비스 :

    는 실행이 필요합니다 얻으려면. REST를 사용하면 설치 및 사용이 가장 쉽고 쉽습니다. 모든 주요 Java REST 프레임 워크를 시도하고 Resteasy으로 끝났습니다. 왜냐하면이 프레임 워크는 단지 작동하고 IMHO에 대한 최고의 설명서가 있기 때문입니다.

  2. GAE Datastore의 작동 방식을 이해합니다. Datastore를 사용하기위한 몇 가지 API가 있습니다.

    a. 로우 레벨은 모델 ​​클래스 (엔티티)를 사용해야하므로 번거롭기 때문에이 API에서 반환 한 객체와 Entity 객체간에 많은 복사 작업을 수행 할 것입니다.

    b. JDO/JPA는 java ORM 표준이지만 SQL 데이터베이스 용으로 만들어졌으며 실제로 Datastore에 맞춰져 있습니다. 나는 그것들을 사용하지 말 것을 권한다. 왜냐하면 그것들은 저수준 위에있는 추가 레이어 일 뿐이며 Datastore는 SQL 데이터베이스라는 개발자를 속일 뿐이다.

    c. Objectify. 이것은 타사 OSS 라이브러리이지만 작성자는 Google에서 AFAIK를 지원합니다. 낮은 수준의 계층이지만 실제로 자연스러운 방식이므로 Datastore 기능이 흐려지지 않도록하십시오. 나는 그것을 사용하는 것이 좋습니다.

  3. 인증. 인증을 원할 것입니다.GAE는 OpenID/OAuth를 기본적으로 지원합니다 (명령 패널에서 federated login 옵션을 체크하십시오). 이제 까다로운 부분은 iPhone 및 기타 장치에서이 작업을 수행하는 것입니다.

    a. 사용자가 iPhone 앱에 Google 자격 증명을 입력하도록 요구합니다. 일부 사용자는이 작업을 수행하기를 꺼립니다 (예를 들어). 이 경우 iPhone OAuth client을 사용하십시오.

    b. 임베디드 브라우저에서 오픈 ID 로그인 웹 페이지를 엽니 다 Authenticating with Stack Overflow programmatically

0

나는 "원시"PHP/MySQL을 (어떤 프레임 워크)에서 백엔드 여러 응용 프로그램을 완료했습니다. 이 접근법의 장점은 정말 쉽고 실제로 존재하는 모든 호스팅 업체가 PHP와 MySQL을 모두 지원한다는 것입니다. 백 엔드가 아이폰 전용 인 경우, 구문 분석이 필요없는 plist 형식 xml의 모든 데이터를 반환 할 수 있으며 iphone 앱의 사전/배열로 즉시 변환 할 수 있습니다.

dev 시스템이나 홈 네트워크에서 테스트 서버를 설정할 수 있으며 이름 대신 IP 주소를 사용하는 한 iphone 시뮬레이터와 iphone 장치를 통해 로컬에서 백엔드를 테스트 할 수 있다는 장점이 있습니다 (그리고 만약 당신이 좋은 시스템 관리자/네트워크 사람이라면, 당신도 네트워크 이름을 사용하도록 설정할 수 있습니다).

원시 PHP/MySQL의 단점은 django와 같은 대부분의 프레임 워크와 같이 데이터 엔티티를 관리/편집하기위한 관리자 인터페이스를 무료로 얻지 못한다는 것입니다. 또 다른 단점은 대량의 트래픽으로 확장하는 것입니다. 그러나 합리적인 호스팅 서비스를 사용하는 경우 문제가되지 않을 수도 있습니다.

php/mysql 웹 사이트를 운영하는 데 온라인으로 많은 책과 자료가 있습니다.

+0

모든 "프레임 워크"(AppEngine 포함)는 로컬 개발 서버를 실행할 수있는 기능을 제공합니다. –

관련 문제