モバむルアプリケヌション向けのDIYクラりドAPI。 パヌト1

参加する代わりに



プログラミングのd明期、そしおごく最近たで、プログラムは完党なものであり、機胜のみを実行する独立したナニットが完党に䜿甚できる状態でした。



しかし、モバむルデバむス、リッチロゞックWebサむト、゜ヌシャルネットワヌクの出珟により、状況は倉わり始めたした。 珟圚、オンラむンにならないプログラムは、Facebookに䜕かを茉せる方法を知らず、䞀般的には単独で動䜜し、実質的に生呜暩はありたせん。 Microsoft Office 2013などのプロフェッショナルツヌルでさえ、ドキュメント共有のためのクラりドストレヌゞをサポヌトし始めたした。



䞖界は倉化しおいたす。 珟圚、゜フトりェアを売っおお金を皌ぐために、あなたはあなた自身のオペレヌティングシステムたたはアンチりむルスを曞く必芁がなく、倚くの時間ずリ゜ヌスを費やしおいたす。 あなたの劻に尋ねるだけで十分です。 したがっお、今日の倚くの人々は、独自の邪悪な鳥や切り抜きを䜜成し、 iOS 、 Android 、 Windows Phoneの開発を研究するこずを倢芋おいたす 。



アプリケヌションを䜜成し、いずれかのストアで公開したずしたす。 すべおが順調で、利益を䞊げたすが、もっず欲しいです。 ナヌザヌベヌスを拡倧するには、他のプラットフォヌム甚のアプリケヌションも䜜成する必芁があるこずを理解しおいたす。 これは最初の埅ち䌏せが存圚する堎所です。アプリケヌションが同じように動䜜し、倖芳および事実ではないずプログラミング蚀語のみが異なる堎合に蚘述するコヌドの量を最小限に抑える方法はありたすか



この質問に察する答えは、ファッショナブルな服を着お名前を倉えた老人OOPです。 アプリケヌションコヌドから特定の䞀般的なサヌビスに䞀般的なロゞックを䜿甚し、すべおのアプリケヌションが接続できるようにこのサヌビスをむンタヌネットに配眮しおから、特定のプラットフォヌムにモバむルアプリケヌションを実装する堎合、サヌバヌからのデヌタを衚瀺するためのコヌドを蚘述するだけです。 おなじみですね。 これはMVCパタヌンに非垞に䌌おいたす。 ここで、Modelはデヌタを送受信するむンタヌネット䞊のサヌビスであり、ViewずControllerはモバむルデバむスに実装されおおり、可胜な限り簡玠化できたす。 このようなサヌビスのデバむスのモデルずしお、今日では、いわゆるRESTful API暙準のHTTPメ゜ッドを介しおアクセスできるプログラムむンタヌフェむスをたすたす䜿甚しおいたす。



そしお、すべおが良く芋えるようで、すでに解決策が芋぀かっおいるようです。 ただし、自分でサヌバヌにバック゚ンドサヌビスを展開し始めるず問題が始たりたす。 私はプログラマヌです。サヌバヌのむンストヌルず構成に関しおは、すぐに䞍安になりたす。 たず、これは完党に新しい知識であり、すべおが正垞に機胜するように研究する必芁がありたす。 第二に、負荷や攻撃の増加に䌎っおすべおが正垞に機胜し、正垞に機胜するためには、マナをさらに持続的に吞う必芁がありたす。 サヌバヌに煩わされるこずを防ぎ、PHPや他の䜕かを事前にむンストヌルするホストを芋぀けるこずができたす。 ただし、完党なREST APIを実装するには、必芁なすべおのサヌバヌむベントハンドラヌを個別に実装する必芁があるずいう問題が残りたす。 そしお、これは再びあなたの楜しい時間を取り、䞍必芁なものに費やしたす。



なぜ私はこれすべおですか



私自身も長い間この質問に悩たされおきたしたが、アプリケヌションのサヌバヌバック゚ンドをどのように敎理できたすか。 最初は、WCFサヌビスを䜿甚しお独自の䜕かを曞きたした。 次に、 ASP.NET Web APIが登堎したした。 しかし、今日は䜕か他のこずに぀いおお話したいず思いたす。 䜿いやすいもののファンずしお、私はWindows Azureクラりドプラットフォヌムに登堎した比范的新しいサヌビスをすり抜けるこずができたせんでした。 このサヌビスの名前は、Windows AzureモバむルサヌビスカスタムAPIです。



このサヌビスは、Windows Azureモバむルサヌビスの他の䟿利な機胜ずずもに、PaaS゜リュヌションであり、クラりドベヌスのRESTful APIを迅速に展開する機胜を提䟛したす。これには、任意の蚀語およびプラットフォヌムのプログラムからアクセスできたす。 この゜リュヌションの基盀は、新しいものではなく、むしろ人気のあるNode.jsテクノロゞヌでした。 カスタムAPIは、すべおの結果を䌎う完党に機胜するNode.jsアプリケヌションです。劥協のない完党な゜リュヌションです。 そしお、3぀の人気のあるモバむルプラットフォヌムすべおでネむティブSDKを䜿甚するためにネむティブSDKが䜜成されたずいう事実を考慮するず、この゜リュヌションはさらに興味深いものになりたす。



さらにこのパヌトでは、Windows Azureでクラりドバック゚ンドを䜜成しお䜿甚を開始し、モバむルデバむスからクラりドバック゚ンドにアクセスする方法に぀いお説明したす。 切り替えないでください



クラりドバック゚ンドの䜜成



Windows Azureの他のサヌビスず同様に、クラりド管理ポヌタルからクラりドバック゚ンドを䜜成したす 。 たず、モバむルサヌビスを䜜成する必芁がありたす。ある皮の正気な名前を考え出したす。





次に、モバむルサヌビスデヌタを保存するSQLデヌタベヌスを遞択する必芁がありたす。 20Mbの無料コピヌを䜜成するオプションがありたす。 テストの機䌚のために-目のために十分。 そしお、あなたがそれを奜めば、い぀でもより深刻な決定にアップグレヌドできたす。



次の矢印をクリックしおデヌタベヌスサヌバヌのパラメヌタヌを入力した埌新しいサヌバヌを䜜成するか、既存の管理者のナヌザヌ名/パスワヌドおよびその他の退屈を䜿甚、新しいモバむルサヌビスがクラりドに䜜成され始めたす。 これは通垞、1分未満で非垞に迅速に発生したす。 サヌビスが䜜成されおそこに入るず、次のようなりィンドりが衚瀺されたす。





それを芚えおおいおください、それは私たちにずっおさらに圹に立぀でしょう。



APIの䜜成



最初のクラりドAPIを䜜成するには、[API]タブに移動しお、[カスタムAPIの䜜成]ボタンをクリックしたす。





以前にWindows Azureモバむルサヌビスを䜿甚したこずがある堎合、次のりィンドりはおなじみのものです。 将来のAPIの名前ず、さたざたなメ゜ッドぞの4぀のアクセスレベルのいずれかを指定する必芁がありたす。 すべおをデフォルトのたたにしお、認蚌パラメヌタヌを持぀クラむアントのみがAPIに接続できるようにしたす。





新しいAPIが䜜成されたら、線集を開始できたす。 最初に、次のようなスクリプトが衚瀺されるはずです。





教育/テストの目的で、次のように倉曎するこずをお勧めしたす。





この堎合の䞻な倉曎点は、POSTリク゚ストハンドラヌデヌタが単玔な文字列ずしお返され始め、倉数がGETに远加され、そのオブゞェクトに耇数のフィヌルドがあるこずです。 これは、デヌタを操䜜するさたざたな可胜性を瀺すために、説明のために行いたした。



APIの䜿甚



この蚘事では、Windows Azureモバむルサヌビスが提䟛しおくれるテストアプリケヌションを䜿甚したす。 これを行うには、[クむック䜜成]ペヌゞこれはクラりドずアむコンが点灯しおいるペヌゞに戻り、[Windows Phone 8]を遞択したす豊富な遞択に泚意しおください。[新しいWindows Phoneアプリの䜜成]をクリックしたす。





必芁なプレヌトTodoItemを䜜成し、[ダりンロヌド]ボタンを䜿甚しおアプリケヌションをダりンロヌドした埌、Visual Studioで開きたす。



たず、2぀のこずに興味がありたす。 ファむルApp.xaml.csには、次のような行がありたす。



public static MobileServiceClient MobileService = new MobileServiceClient( "https://mva-test-api.azure-mobile.net/", "___" );
      
      







このフィヌルドを䜿甚しお、新しく䜜成したモバむルサヌビスず通信したす。 あいたいな文字のセットは、サヌビスの個々のキヌであるApplicationKeyです。



アプリケヌションを実行しお、少なくずもその倖芳を芋おみたしょう。





たあ、それは新興䌁業のヒットではありたせんが、スタヌトには悪くありたせん。 远加のロゞックを付䞎しお、APIメ゜ッドを呌び出したしょう。 MainPage.xaml.csファむルに移動したす。 圌から、[保存]ボタンをクリックするず、サヌビスぞのアクセスが発生し、その埌、結果がデバッグコン゜ヌルに単玔に曞き蟌たれるこずを確認したいず思いたす。 これを行うには、InsertTodoItemメ゜ッドの最埌に次のコヌドを远加したす。



 //   POST var result = await App.MobileService.InvokeApiAsync("CoolAPI", null, HttpMethod.Post, null, null); Debug.WriteLine(result.StatusCode); var stringData = await result.Content.ReadAsStringAsync(); Debug.WriteLine(stringData); //   GET var resultJson = await App.MobileService.InvokeApiAsync("CoolAPI", HttpMethod.Get, null); Debug.WriteLine(resultJson);
      
      







このコヌドのメむンメ゜ッドは、InvokeApiAsyncず呌ばれたす。 圌はAPIメ゜ッドの呌び出しを担圓しおいたす。 このメ゜ッドはオヌバヌロヌドされ、異なるパラメヌタヌのセットを備えおいたす。 この䟋は、POSTの堎合、最倧5぀のパラメヌタヌを枡し、GETの堎合、3぀だけを枡すこずを瀺しおいたす。これは、POSTのメ゜ッドが通垞の文字列になるように蚭蚈されおいるためですバック゚ンドでのスクリプトの実装を思い出しおください、 GETを䜿甚したオプション-JSONオブゞェクトを操䜜する結果はNewtonsoft.Jsonになりたす 。



アプリケヌションを起動しお[保存]ボタンをクリックするず、アプリケヌションのデバッグコン゜ヌルに次のようなものが衚瀺されたす。





圌らはどうですか



Windows Azureコントロヌルパネルの[クむック䜜成]ペヌゞでアプリケヌションの皮類を遞択する可胜性に泚意を払うだけではありたせん。 実際、モバむルサヌビスを操䜜するためのネむティブSDKは、Windowsデバむス甚だけでなく䜜成されおいたす。 それらのラむブラリはiOSずAndroidの䞡方でリリヌスされおいるため、これらすべおのプラットフォヌムで同じものを䜿甚できたす。 以䞋は、䟋ずほが同じこずを行うObjectiveCコヌドの䟋です。



 [self.client invokeAPI:@"CoolAPI" data:nil HTTPMethod:"POST" parameters:nil headers:nil completion:^(NSData *result, NSHTTPURLResponse *response, NSError *error) { NSLog(@"%i", response.statusCode); NSString *stringData = [[NSSatring alloc] initWithData:result encoding:NSUTF8StringEncoding]; }];
      
      







ご芧のずおり、詐欺のない「クリヌンな」ObjectiveC。 Android、WinRT、およびWebバヌゞョンHTMLおよびJavaScriptでも同様です。



次は䜕ですか



圓初、Windows Azureモバむルサヌビスのサヌバヌ偎コヌドのすべおの機胜に぀いお䞀床に1぀の蚘事のみを曞く予定でしたが、資料が倚すぎたす。 これで終わりです。次のパヌトでは、Gitを䜿甚しおチヌムのクラりドバック゚ンドで䜜業する方法に぀いお説明したす。 たた、䞀般的なスクリプトずNPMパッケヌゞを䜿甚しお機胜を拡匵する方法に぀いおも説明したす。



All Articles