SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
汎用APIサーバの構築
                  h_mori




13年3月24日日曜日
自己紹介
              • 森 英寿(プログラマ)
                 hidetoshi.mori
                 @h_mori

               SOICHA/TweetMe
               ATND暦/生存連絡



13年3月24日日曜日
お題


         • 簡単にBBSを作る



13年3月24日日曜日
開発の流れ
              1. APIインターフェースの定義
              2. サーバ環境の構築
              3. サーバモジュールの開発・デプロイ
              4. スタブの作成
              5. iOSクライアントの実装
              6. 結合テスト




13年3月24日日曜日
(´・ω・`)

               大変ですよね

         データを同期したいだけなのに・・・




13年3月24日日曜日
システムの特性

         • レコード単位でデータが独立している
         • トランザクション制御は不要
         • データはどんどん肥大化する


13年3月24日日曜日
RESTfulな設計
         •    ステートレスな通信

         •    HTTP操作をリソース単位のCRUDで扱う

              GET、POST、PUT、DELETEメソッド

              サーバの処理はFetch/Insert/Update/Deleteのみ




13年3月24日日曜日
例
         •    GET /records

         •    GET /records?limit=20&orderby=createdAt

         •    POST /records
                  BODY:{ "user":"h_mori", "message":"hello" }

         •    DELETE /records/00000001




13年3月24日日曜日
サーバ構築

              ビジネスロジックが無いのに

               サーバ開発は野暮だよね




13年3月24日日曜日
jsonengine
         • AppEngineで動作するJSONストレージ
         • スキーマレスDB
         • 設置はデプロイして設定するだけ
         http://code.google.com/p/jsonengine/



13年3月24日日曜日
メリット

         • サーバ開発が全く不要
         • NSJSONSerializationと親和性が高い


13年3月24日日曜日
デメリット
         • ドキュメントサイズに制限がある
              1ドキュメント1MB、500文字以下

         • ソートキー、不等号条件を同時に2つ以
              上指定できない

         • 認証が苦手(AppEngineでBASIC認証等)

13年3月24日日曜日
参考

         http://d.hatena.ne.jp/h_mori/20121126/1353887013
         https://github.com/hmori/JsonEngineTest




13年3月24日日曜日

Más contenido relacionado

La actualidad más candente

Casual Compression on MongoDB
Casual Compression on MongoDBCasual Compression on MongoDB
Casual Compression on MongoDBmoai kids
 
MongoDBCSharp
MongoDBCSharpMongoDBCSharp
MongoDBCSharpytanno
 
Ossで作るwebサイト
Ossで作るwebサイトOssで作るwebサイト
Ossで作るwebサイトSoudai Sone
 
Next-L Enju 開発ワークショップ #8
Next-L Enju 開発ワークショップ #8Next-L Enju 開発ワークショップ #8
Next-L Enju 開発ワークショップ #8Kosuke Tanabe
 
20130216 magical record
20130216 magical record20130216 magical record
20130216 magical recordHidetoshi Mori
 
MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!Tetsutaro Watanabe
 
Mongo db勉強会の補足
Mongo db勉強会の補足Mongo db勉強会の補足
Mongo db勉強会の補足CROOZ, inc.
 
コロナ禍の所蔵品検索システム
コロナ禍の所蔵品検索システムコロナ禍の所蔵品検索システム
コロナ禍の所蔵品検索システムNaosuke Okamoto
 
[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いているAkihiro Kuwano
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜Naruhiko Ogasawara
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!Tetsutaro Watanabe
 
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBAkihiro Kuwano
 
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)parrotstudio
 
DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?Hiroaki Kubota
 

La actualidad más candente (20)

実践スクレイピング
実践スクレイピング実践スクレイピング
実践スクレイピング
 
Casual Compression on MongoDB
Casual Compression on MongoDBCasual Compression on MongoDB
Casual Compression on MongoDB
 
Tour of Scraping
Tour of ScrapingTour of Scraping
Tour of Scraping
 
MongoDBCSharp
MongoDBCSharpMongoDBCSharp
MongoDBCSharp
 
Reactjs
ReactjsReactjs
Reactjs
 
MongoDBの監視
MongoDBの監視MongoDBの監視
MongoDBの監視
 
Ossで作るwebサイト
Ossで作るwebサイトOssで作るwebサイト
Ossで作るwebサイト
 
Next-L Enju 開発ワークショップ #8
Next-L Enju 開発ワークショップ #8Next-L Enju 開発ワークショップ #8
Next-L Enju 開発ワークショップ #8
 
Mongoざっくり紹介
Mongoざっくり紹介Mongoざっくり紹介
Mongoざっくり紹介
 
20130216 magical record
20130216 magical record20130216 magical record
20130216 magical record
 
MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!
 
Mongo db勉強会の補足
Mongo db勉強会の補足Mongo db勉強会の補足
Mongo db勉強会の補足
 
コロナ禍の所蔵品検索システム
コロナ禍の所蔵品検索システムコロナ禍の所蔵品検索システム
コロナ禍の所蔵品検索システム
 
Lt
LtLt
Lt
 
[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDB
 
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
 
DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?
 

Destacado

IBM Bluemix infrastructure SoftLayer はじめての見積もりの仕方 softlayer
IBM Bluemix infrastructure SoftLayer はじめての見積もりの仕方  softlayerIBM Bluemix infrastructure SoftLayer はじめての見積もりの仕方  softlayer
IBM Bluemix infrastructure SoftLayer はじめての見積もりの仕方 softlayerKazuhiko Isaji
 
Bluemix_API_Possibility
Bluemix_API_PossibilityBluemix_API_Possibility
Bluemix_API_PossibilityHarada Kazuki
 
BluemixとIBM DevOps Servicesで始めるアプリケーション開発
BluemixとIBM DevOps Servicesで始めるアプリケーション開発BluemixとIBM DevOps Servicesで始めるアプリケーション開発
BluemixとIBM DevOps Servicesで始めるアプリケーション開発IBMソリューション
 
【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0
【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0
【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0Kazuhiko Isaji
 
”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)
”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)
”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)Shinobu Yasuda
 

Destacado (7)

IBM Bluemix infrastructure SoftLayer はじめての見積もりの仕方 softlayer
IBM Bluemix infrastructure SoftLayer はじめての見積もりの仕方  softlayerIBM Bluemix infrastructure SoftLayer はじめての見積もりの仕方  softlayer
IBM Bluemix infrastructure SoftLayer はじめての見積もりの仕方 softlayer
 
Bluemix_API_Possibility
Bluemix_API_PossibilityBluemix_API_Possibility
Bluemix_API_Possibility
 
Bluemixと既存システムとの連携
Bluemixと既存システムとの連携Bluemixと既存システムとの連携
Bluemixと既存システムとの連携
 
BluemixとIBM DevOps Servicesで始めるアプリケーション開発
BluemixとIBM DevOps Servicesで始めるアプリケーション開発BluemixとIBM DevOps Servicesで始めるアプリケーション開発
BluemixとIBM DevOps Servicesで始めるアプリケーション開発
 
【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0
【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0
【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0
 
Bluemixの基本を知る -全体像-
Bluemixの基本を知る -全体像-Bluemixの基本を知る -全体像-
Bluemixの基本を知る -全体像-
 
”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)
”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)
”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)
 

Similar a 汎用apiサーバの構築

mongodbの簡易ストレージ化
mongodbの簡易ストレージ化mongodbの簡易ストレージ化
mongodbの簡易ストレージ化Hidetoshi Mori
 
かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう Shuhei Iitsuka
 
20150808 osc関西@京都
20150808 osc関西@京都20150808 osc関西@京都
20150808 osc関西@京都Takayuki Gondoh
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイントKentaro Matsui
 
Oracle?SQL Server?PostgreSQL?誰でも簡単にできる異種DB移行・連携
Oracle?SQL Server?PostgreSQL?誰でも簡単にできる異種DB移行・連携Oracle?SQL Server?PostgreSQL?誰でも簡単にできる異種DB移行・連携
Oracle?SQL Server?PostgreSQL?誰でも簡単にできる異種DB移行・連携株式会社クライム
 
Chromeでストレージ永続化を実現するには
Chromeでストレージ永続化を実現するにはChromeでストレージ永続化を実現するには
Chromeでストレージ永続化を実現するにはgoccy
 
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in expressサブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in expressTakahiro YAMAGUCHI
 
Hyper → Highspeed → Development
Hyper → Highspeed → DevelopmentHyper → Highspeed → Development
Hyper → Highspeed → Developmentaktsk
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜Takahiro Inoue
 
Development - International Open Data Hackathon Tokyo - Chiyoda ward geolocat...
Development - International Open Data Hackathon Tokyo - Chiyoda ward geolocat...Development - International Open Data Hackathon Tokyo - Chiyoda ward geolocat...
Development - International Open Data Hackathon Tokyo - Chiyoda ward geolocat...Tajima Itsuro
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜Koichi ITO
 
2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage PlatformMasaki Nakagawa
 
エンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSSエンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSSHiroshi Nakamura
 
Remineを活かしたプロセス支援 - 失敗しないプロセス支援 -
Remineを活かしたプロセス支援 - 失敗しないプロセス支援 -Remineを活かしたプロセス支援 - 失敗しないプロセス支援 -
Remineを活かしたプロセス支援 - 失敗しないプロセス支援 -Makoto SAKAI
 
【ランサーズ】 DevOpsで実現するグロースハック
【ランサーズ】 DevOpsで実現するグロースハック【ランサーズ】 DevOpsで実現するグロースハック
【ランサーズ】 DevOpsで実現するグロースハックKei Kinoshita
 

Similar a 汎用apiサーバの構築 (20)

mongodbの簡易ストレージ化
mongodbの簡易ストレージ化mongodbの簡易ストレージ化
mongodbの簡易ストレージ化
 
かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう
 
20150808 osc関西@京都
20150808 osc関西@京都20150808 osc関西@京都
20150808 osc関西@京都
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
 
Oracle?SQL Server?PostgreSQL?誰でも簡単にできる異種DB移行・連携
Oracle?SQL Server?PostgreSQL?誰でも簡単にできる異種DB移行・連携Oracle?SQL Server?PostgreSQL?誰でも簡単にできる異種DB移行・連携
Oracle?SQL Server?PostgreSQL?誰でも簡単にできる異種DB移行・連携
 
Chromeでストレージ永続化を実現するには
Chromeでストレージ永続化を実現するにはChromeでストレージ永続化を実現するには
Chromeでストレージ永続化を実現するには
 
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in expressサブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
 
Hyper → Highspeed → Development
Hyper → Highspeed → DevelopmentHyper → Highspeed → Development
Hyper → Highspeed → Development
 
2012.02.28 IAMAS GeekLab #037 MyScripts
2012.02.28 IAMAS GeekLab #037 MyScripts2012.02.28 IAMAS GeekLab #037 MyScripts
2012.02.28 IAMAS GeekLab #037 MyScripts
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
 
Development - International Open Data Hackathon Tokyo - Chiyoda ward geolocat...
Development - International Open Data Hackathon Tokyo - Chiyoda ward geolocat...Development - International Open Data Hackathon Tokyo - Chiyoda ward geolocat...
Development - International Open Data Hackathon Tokyo - Chiyoda ward geolocat...
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
20120831 mongoid
20120831 mongoid20120831 mongoid
20120831 mongoid
 
Git
GitGit
Git
 
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
 
2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform
 
エンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSSエンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSS
 
Remineを活かしたプロセス支援 - 失敗しないプロセス支援 -
Remineを活かしたプロセス支援 - 失敗しないプロセス支援 -Remineを活かしたプロセス支援 - 失敗しないプロセス支援 -
Remineを活かしたプロセス支援 - 失敗しないプロセス支援 -
 
【ランサーズ】 DevOpsで実現するグロースハック
【ランサーズ】 DevOpsで実現するグロースハック【ランサーズ】 DevOpsで実現するグロースハック
【ランサーズ】 DevOpsで実現するグロースハック
 

Más de Hidetoshi Mori

プロジェクト管理しないという提案
プロジェクト管理しないという提案プロジェクト管理しないという提案
プロジェクト管理しないという提案Hidetoshi Mori
 
20130515 diary euglena_en
20130515 diary euglena_en20130515 diary euglena_en
20130515 diary euglena_enHidetoshi Mori
 
コンシューマアプリを作るということ
コンシューマアプリを作るということコンシューマアプリを作るということ
コンシューマアプリを作るということHidetoshi Mori
 
UITableViewで無限CoverFlowを作る
UITableViewで無限CoverFlowを作るUITableViewで無限CoverFlowを作る
UITableViewで無限CoverFlowを作るHidetoshi Mori
 
モバイルビジネスの動向
モバイルビジネスの動向モバイルビジネスの動向
モバイルビジネスの動向Hidetoshi Mori
 
インタラクションデザインの考察
インタラクションデザインの考察インタラクションデザインの考察
インタラクションデザインの考察Hidetoshi Mori
 
モバイルビジネスの動向
モバイルビジネスの動向モバイルビジネスの動向
モバイルビジネスの動向Hidetoshi Mori
 
サービス開発における工程
サービス開発における工程サービス開発における工程
サービス開発における工程Hidetoshi Mori
 
ゲリラ的サービスの育て方
ゲリラ的サービスの育て方ゲリラ的サービスの育て方
ゲリラ的サービスの育て方Hidetoshi Mori
 
インタラクションデザインの考察
インタラクションデザインの考察インタラクションデザインの考察
インタラクションデザインの考察Hidetoshi Mori
 
Presentation of TapkuLibrary
Presentation of TapkuLibraryPresentation of TapkuLibrary
Presentation of TapkuLibraryHidetoshi Mori
 

Más de Hidetoshi Mori (20)

Photo mosaic 検証
Photo mosaic 検証Photo mosaic 検証
Photo mosaic 検証
 
プロジェクト管理しないという提案
プロジェクト管理しないという提案プロジェクト管理しないという提案
プロジェクト管理しないという提案
 
Git超入門
Git超入門Git超入門
Git超入門
 
20130515 diary euglena_en
20130515 diary euglena_en20130515 diary euglena_en
20130515 diary euglena_en
 
Evernote連携
Evernote連携Evernote連携
Evernote連携
 
コンシューマアプリを作るということ
コンシューマアプリを作るということコンシューマアプリを作るということ
コンシューマアプリを作るということ
 
20130216 小ネタ集
20130216 小ネタ集20130216 小ネタ集
20130216 小ネタ集
 
UITableViewで無限CoverFlowを作る
UITableViewで無限CoverFlowを作るUITableViewで無限CoverFlowを作る
UITableViewで無限CoverFlowを作る
 
モバイルビジネスの動向
モバイルビジネスの動向モバイルビジネスの動向
モバイルビジネスの動向
 
Storyboard
StoryboardStoryboard
Storyboard
 
Blocksの活用法
Blocksの活用法Blocksの活用法
Blocksの活用法
 
インタラクションデザインの考察
インタラクションデザインの考察インタラクションデザインの考察
インタラクションデザインの考察
 
モバイルビジネスの動向
モバイルビジネスの動向モバイルビジネスの動向
モバイルビジネスの動向
 
サービス開発における工程
サービス開発における工程サービス開発における工程
サービス開発における工程
 
ゲリラ的サービスの育て方
ゲリラ的サービスの育て方ゲリラ的サービスの育て方
ゲリラ的サービスの育て方
 
インタラクションデザインの考察
インタラクションデザインの考察インタラクションデザインの考察
インタラクションデザインの考察
 
Presentation of TapkuLibrary
Presentation of TapkuLibraryPresentation of TapkuLibrary
Presentation of TapkuLibrary
 
Facebook api for iOS
Facebook api for iOSFacebook api for iOS
Facebook api for iOS
 
Facebook API for iOS
Facebook API for iOSFacebook API for iOS
Facebook API for iOS
 
FacebookAPI for iOS
FacebookAPI for iOSFacebookAPI for iOS
FacebookAPI for iOS
 

汎用apiサーバの構築

  • 1. 汎用APIサーバの構築 h_mori 13年3月24日日曜日
  • 2. 自己紹介 • 森 英寿(プログラマ) hidetoshi.mori @h_mori SOICHA/TweetMe ATND暦/生存連絡 13年3月24日日曜日
  • 3. お題 • 簡単にBBSを作る 13年3月24日日曜日
  • 4. 開発の流れ 1. APIインターフェースの定義 2. サーバ環境の構築 3. サーバモジュールの開発・デプロイ 4. スタブの作成 5. iOSクライアントの実装 6. 結合テスト 13年3月24日日曜日
  • 5. (´・ω・`) 大変ですよね データを同期したいだけなのに・・・ 13年3月24日日曜日
  • 6. システムの特性 • レコード単位でデータが独立している • トランザクション制御は不要 • データはどんどん肥大化する 13年3月24日日曜日
  • 7. RESTfulな設計 • ステートレスな通信 • HTTP操作をリソース単位のCRUDで扱う GET、POST、PUT、DELETEメソッド サーバの処理はFetch/Insert/Update/Deleteのみ 13年3月24日日曜日
  • 8. • GET /records • GET /records?limit=20&orderby=createdAt • POST /records BODY:{ "user":"h_mori", "message":"hello" } • DELETE /records/00000001 13年3月24日日曜日
  • 9. サーバ構築 ビジネスロジックが無いのに サーバ開発は野暮だよね 13年3月24日日曜日
  • 10. jsonengine • AppEngineで動作するJSONストレージ • スキーマレスDB • 設置はデプロイして設定するだけ http://code.google.com/p/jsonengine/ 13年3月24日日曜日
  • 11. メリット • サーバ開発が全く不要 • NSJSONSerializationと親和性が高い 13年3月24日日曜日
  • 12. デメリット • ドキュメントサイズに制限がある 1ドキュメント1MB、500文字以下 • ソートキー、不等号条件を同時に2つ以 上指定できない • 認証が苦手(AppEngineでBASIC認証等) 13年3月24日日曜日
  • 13. 参考 http://d.hatena.ne.jp/h_mori/20121126/1353887013 https://github.com/hmori/JsonEngineTest 13年3月24日日曜日