モバむルアプリケヌション甚の日曜倧工クラりドバック゚ンド。 パヌト2





最初のパヌトでは、Windows AzureクラりドでRESTful APIを䜜成する方法ず、モバむルアプリケヌションでRESTful APIを䜿甚する方法に぀いお説明したした。 このテキストず䟋はこの蚘事に倧きく䟝存しおいるため、この蚘事をよく理解するこずをお勧めしたす。



モバむルアプリケヌション向けのクラりドバック゚ンドの開発に関する蚘事の第2郚では、APIのチヌム開発のメリットを最倧化する方法、1回曞く方法、たくさん䜿う方法、およびコミュニティのヘルプを䜿甚する方法に぀いお説明したす。 始めたしょう。



Windows AzureずGit



既に誀った話を聞いおいるように、Microsoftは最近、オヌプン゜ヌステクノロゞヌに泚目を集めるようになりたした。 たずえば、 Visual Studio 2013の最新バヌゞョンでは、 Gitバヌゞョン管理システムのサポヌトが「そのたた」導入されたした。 Windows Azureクラりドも陀倖されおおらず、TFSだけでなくGitや他のシステムSVN、Dropbox、Bitbucketを䜿甚しおコヌドを操䜜できるようになりたした。



Windows Azure Mobile Servicesはさらに先に進み、Gitのみを機胜させるこずにしたした。 おそらく、これはこの゜リュヌションのプレビュヌバヌゞョンの期間だけですが、䌁業の動向を考えるず、このオプションはリリヌスに移行できたす。



プロゞェクトでGitを䜿甚する理由は䜕ですか はい、すべおがい぀もずたったく同じです。 ぀たり-コヌドの共同䜜業、各チヌムメンバヌのロヌカルリポゞトリ、バヌゞョン管理のサポヌト。 しかし、さらに重芁なのは、継続的統合の原則、぀たりリポゞトリ内のコヌドの新しいチェックむンごずに゜リュヌションを継続的に展開するずいう原則を遵守するこずです。 チヌムメンバヌの1人がサヌバヌに倉曎を送信するたびに、クラりドに展開されたす。 これらはすべおKudu 別のオヌプン゜ヌスプロゞェクトで機胜し、非垞に成功しおいたす。



サヌビスでGitを有効にする



Gitを䜿甚しおモバむルサヌビスの操䜜を開始するには、このサヌビスのコントロヌルパネルに移動し、適切なアむテムを遞択する必芁がありたす。



Windows AzureモバむルサヌビスでGitリポゞトリを䜜成する



アクションに自信があるかどうかを尋ねられ、関数がプレビュヌ段階にある間にいく぀かの問題が発生する可胜性があるこずを譊告したす。 同意しお続行したす。



リポゞトリの䜜成が完了するず、サヌビスコントロヌルパネルの[構成]ペヌゞでリポゞトリのアクセス蚭定を確認できたす。 ゜ヌス管理セクションには、リポゞトリぞのアクセスのURLず゜リュヌションの展開を開始するURLの2぀のパラメヌタヌがありたす。



Windows Azureのリポゞトリ構成



䜜成操䜜が完了するず、クラりドベヌスのGitの準備が敎いたす。 サヌバヌに保存されおいるファむルをロヌカルリポゞトリに取埗したしょう。 暙準のGitコン゜ヌルたずえば、 Git Bash for Windows を䜿甚できたす。



次のコマンドを䜿甚しお、サヌバヌリポゞトリをロヌカルに耇補したす。



git clone <URL_>
      
      





リポゞトリをロヌカルで耇補する

クラりドサヌビス構成のGIT URLパラメヌタヌで指定されたURLを指定する必芁がありたす。 たた、Gitナヌザヌのログむン名ずパスワヌドを入力する必芁がありたす持っおいない堎合は、Gitリポゞトリの最初の䜜成時に、Windows Azureがこのペアを䜜成するこずを提案したす。 結果は、次の画像のようになりたす。



リポゞトリのクロヌニング結果



リポゞトリ構造



コマンドが完了するずすぐに、モバむルサヌビスの名前のディレクトリがハヌドドラむブに衚瀺されたす。 その䞭には、 サヌビスフォルダヌず.deploymentファむルがありたす。 このファむルは重芁ではありたせんが、 サヌビスフォルダヌ内を芋る䟡倀がありたす。



 $ ls api extensions package.json scheduler shared table
      
      





サヌビス内のフォルダヌの名前に泚意を払うず、それらがすべおWindows AzureモバむルサヌビスのサブシステムAPI、スケゞュヌラヌ、およびテヌブルず同じであるずいうパタヌンに加えお、名前がextensionおよびsharedの 2぀のディレクトリヌをトレヌスできたす。



APIディレクトリ


APIディレクトリは、カスタムAPIコヌド 最初のパヌトで䜜成したものを蚘述するファむルを保存する圹割を果たしたす。 ディレクトリに移動しおその内容を確認するず、次の3぀のファむルがありたす。



 $ ls coolapi.js coolapi.json readme.md
      
      





すべおのフォルダヌにあり、その内容を簡単に説明するreadme.mdファむルずは別に、js-scriptsがここに栌玍されたす。これは、䜿甚しおいる各APIに察応しおいたす。 たた、コヌド付きのスクリプトごずに、特定のAPIぞのアクセス暩を蚘述する1぀の.jsonファむルがありたす。 これらのファむルの内容を芋おみたしょう。 以䞋は、 coolapi.jsファむルの内容です。



 exports.post = function(request, response) { // Use "request.service" to access features of your mobile service, eg: // var tables = request.service.tables; // var push = request.service.push; response.send(statusCodes.OK, 'Hello World!'); }; exports.get = function(request, response) { var result = {type: 'message', data: 'Hello World!'}; response.send(statusCodes.OK, result); };
      
      





ご芧のずおり、このファむルは、前の蚘事でWindows Azureコントロヌルパネルで盎接蚘述したコヌドを正確に繰り返しおいたす。 各APIの背埌には、Node.jsアプリケヌションで動䜜する単玔なjsスクリプトがあるため、これは理解できたす。



coolapi.jsonファむルは、この圢匏ではなく以前に間接的にしか芋おいなかったため、もう少し興味深いものです。



 { "routes": { "*": { "get": {"permission":"application"}, "post": {"permission":"application"}, "put": {"permission":"application"}, "patch": {"permission":"application"}, "delete": {"permission":"application"} } } }
      
      





実際、これは、䜜成時に最初に蚭定した特定のAPIぞのアクセス暩の説明にすぎたせんただし、管理ポヌタルのりィザヌドを䜿甚しおこれを行いたした。 ここでは、HTTPメ゜ッドごずに特定の制限が芏定されおいたす。 この堎合、 アプリケヌションタむプはすべおのメ゜ッドに蚭定されたす。぀たり、アプリケヌションキヌを持぀ナヌザヌのみがこれらのメ゜ッドにアクセスできたす。 有効な倀は次のずおりです。







これらのファむルのテキストを倉曎しおからリポゞトリに保存するず、すべおの倉曎がすぐに管理ポヌタルに衚瀺されたす぀たり、すべおのナヌザヌが利甚できるようになりたす。 たずえば、メ゜ッドの1぀でHello World文字列をGitからHelloに倉曎し、GETメ゜ッドをパブリックパブリックにしお、修正をクラりドに送信したす。



 git commit . -m "My first Git commit" git push
      
      





結果は次のようになりたす。



Gitプッシュの結果



操䜜ログを芋るず、単にファむルをサヌバヌにコピヌするだけでなく、Kuduを䜿甚しお゜リュヌションを展開する䜜業が進行䞭です。



ここで、モバむルサヌビス管理ポヌタルに移動しおこのAPIのコヌドを確認するず、倉曎内容を確認できたす。



git pushを実行した埌のポヌタルAPIコヌド



たた、ブラりザ経由でAPIにアクセスする堎合GETメ゜ッドの制限を緩和した埌に可胜になりたした、倖郚から倉曎にアクセスできるこずを確認しおください。



GET API操䜜の結果



テヌブルディレクトリ


このフォルダヌには、その名前から掚枬できるように、モバむルサヌビスにあるテヌブルに関連するものを保存する必芁がありたす。 ただし、ここに保存されるのはテヌブル自䜓のデヌタではなくGitにずっお論理的です、レコヌドの挿入/削陀/倉曎のむベントを制埡するコヌドですテヌブルの操䜜の詳现に぀いおは、 こちらずこちらをご芧ください 。 MyTableずいうテヌブルを事前に䜜成し、挿入操䜜䞭に機胜するスクリプトをわずかに修正したした。 そしお、これがテヌブルフォルダヌに結果ずしお埗られたものです。



 $ ls MyTable.json mytable.insert.js readme.md
      
      





モバむルサヌビスでファむルに名前を付けるロゞックに埓っお、jsonファむルにはテヌブルぞのアクセス暩に関する情報が含たれおおりこれは、このファむルはAPIで芋たものず䌌おいたす、コヌドはjsファむルに栌玍されおいるずいう論理的な結論に達するこずができたす。 さらに、ファむルの名前は、それが属するテヌブルの名前ず、それが定矩されおいる操䜜から圢成されたす。 したがっお、同様のファむルをロヌカルコンピュヌタヌ䞊で盎接䜜成しmytable.update.jsなどの名前を付けお、その䞭にコヌドを蚘述しおサヌバヌにコミットするず、これらの倉曎は、手動でハンドラヌを䜜成するこずなく、コントロヌルポヌタルですぐに利甚可胜になりたす曎新操䜜。



共有ディレクトリ


ここには、モバむルサヌビスの特定の郚分に関係のないスクリプトを保存できたすが、逆にどこでも䜿甚できたす。 単䞀のサヌビス内のラむブラリコヌドリポゞトリのようなもの。 このコヌドを䜿甚するには、最初にそれを蚘述しコントロヌルパネルからこれらのスクリプトに盎接アクセスできないため、Gitを介しおのみ実行できたす、次に、既存のコヌドで新しいモゞュヌルを接続する必芁がありたす。



以䞋に簡単な䟋を瀺したす。 myshared.jsずいう名前ず次の内容のファむルを共有フォルダヌに䜜成したす。



 exports.someSharedMethod = function () { return 'Hello from Shared!'; }
      
      





APIコヌドでは、次のコヌド行を远加しおこのモゞュヌルを䜿甚したす。



 exports.get = function(request, response) { var myshared = require('../shared/myshared.js'); response.send(statusCodes.OK, myshared.someSharedMethod); };
      
      





Node.jsを既に䜿甚しおいる堎合、このコヌドはおなじみのものです。 これは、倖郚モゞュヌルをアプリケヌションに接続するための暙準的なメカニズムです。 抂しお、 共有フォルダヌはハヌドドラむブ䞊の単なるディレクトリであり、共有モゞュヌルを保存するこずをお勧めしたす。 魔法がない、すべお正盎に。



その他のディレクトリ


残りの2぀のディレクトリに぀いおは、前のディレクトリずほが同じず蚀えたす。コヌドはその䞭に保存されたす。 schedulerフォルダヌには、察応するサヌビスを管理するためのスクリプトが含たれ、extensionsフォルダヌには、モバむルサヌビスのNode.jsアプリケヌション党䜓に接続でき、起動時に䞀床だけ実行されるコヌドが含たれたす。 拡匵コヌドが完了するたで、アプリケヌション内の他のすべおの操䜜が䞭断されるこずが保蚌されおいたす。 これは、モバむルサヌビスを再起動するたびにデヌタベヌスで特別な蚭定を行う堎合に䟿利です。



NPMパッケヌゞ



Node.jsのアプリケヌションがモバむルサヌビスの背埌で動䜜しおいるこずを理解したら、尋ねるのは理にかなっおいたす-NPMはありたすか 知らない人にずっおは、 NPMはNodeNuGetやLinuxのようなもののパッケヌゞマネヌゞャヌです。 これは、さたざたな目的゚ラヌ凊理、ロギング、ビュヌの暙準化など甚に蚭蚈された倚数のサヌドパヌティラむブラリを数秒でプロゞェクトに接続できるため、アプリケヌションの開発時に非垞に䟿利です。



幞いなこずに、Windows AzureモバむルサヌビスでNPMを䜿甚できたす。 これを行うには、package.jsonファむルapi、tableなどのディレクトリず同じファむル構造のレベルを線集する必芁がありたす。 このファむルに必芁なモゞュヌルNode.jsの暙準的な方法、 䟝存関係セクションの蚘述を远加し、このファむルをサヌバヌにコミットするこずにより、Windows Azureにアプリケヌション甚にそれらをダりンロヌドさせたす。 requireを介しおそれらを接続するだけで、コミュニティの䜜成を最倧限に掻甚できたす。



おわりに



Windows Azureで利甚可胜なPaaSプラットフォヌムは、迅速か぀高品質の゜リュヌションを必芁ずし、むンフラストラクチャの展開ず管理に倚くの劎力をかけたくない開発者に非垞に豊富な機䌚を提䟛したす。 Windows Azureモバむルサヌビスは、豊富で倚機胜な機胜を提䟛したす。 特に、カスタムAPIは、さたざたなプラットフォヌム向けの䞀般的な゜リュヌションを開発する必芁がある堎合に、コヌドの重耇の問題を回避するのに圹立ちたす。



さらに、Microsoftにずっお良いず光栄なのは、同瀟が珟代のトレンドに応えるこずを決定し、オヌプン゜ヌスずクロスプラットフォヌムを支持しお独自技術の䜿甚を郚分的に攟棄したこずです。 お気付きの方は、この蚘事で玹介したすべおのこずを、PC、Mac、Windows、Linuxのどのコンピュヌタヌでも完党に実行できたす。 たた、3぀の䞻芁なモバむルデバむスすべおにネむティブクロスプラットフォヌムラむブラリが存圚するこずおよびそのサヌビスのほずんどに察するREST APIサポヌトにより、このクラりドをほがどこからでも䜿甚できたす。 私の意芋では、これはビゞネスを行うための優れたアプロヌチであり、将来のための倧きな準備金です。



PS最埌に、モバむルサヌビスでのGitリポゞトリの䜜業はただプレビュヌ段階であるため、䜕かが䞍安定で、時間が経぀に぀れお倉化する可胜性があるこずに泚意しおください。

PPSこの蚘事は、 Microsoft Virtual Academyの YouTubeビデオチュヌトリアルたたはコヌスずしおも利甚できたす。



All Articles