Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

本エントリーは連載「ASP.NET Web APIを使おう」の第3回となります。連載の目次はこちら。 www.nuits.jp さて第1回・第2回でWeb APIを作成し、SwaggerのAPIドキュメントを公開する方法を解説してきました。今回は、これまで作成したWeb APIに対してswagger-codegenを利用して、C#用のクライアントコードを生成し、実行する方法を解説します。 ところでVisual Studioには標準でSwaggerのAPIドキュメントから、RESTクライアントのコードを生成する機能が存在します。しかし今回は、次の理由から利用せずswagger-codegenを利用する事にしました。 メソッドが拡張メソッドとして生成されるためテストが困難 メソッドに別名を付与する場合はWeb API全体でユニークな名称にしなくてはならない それでは実際の作り方を説明していきま
本エントリーは連載「ASP.NET Web APIを使おう」の第3回となります。連載の目次はこちら。 www.nuits.jp さて今回は、Web API の利用にあたり統合 Windows 認証を適用する方法を説明します。 1. 前提条件 2. サーバーサイドに適用する 3. クライアントサイドに適用する 4. 認証状態を確認する 1. 前提条件 本連載で作成してきたコードが存在する前提で説明を進めますが、なくても理解できるよう記載しています。 また以下の環境の元記載しています。 Visual Studio 2017 Version 15.5.6 .NET Framework 4.7.1 2. サーバーサイドに適用する まずは HelloWebApi プロジェクトの Web.config ファイルを開いてください。 Web.config の先頭につぎのような記述があります。 <?xml
/one?value=1&value=2&value=3 のような URL でリクエストがきた場合に、クエリ文字列の同じキーの値を配列として取得する方法。 ASP.NET Web API にて ApiController の Request プロパティからクエリ文字列を取得する アクションメソッドの引数にバインドさせる の2つの方法がある。 using System.Linq; using System.Net.Http; using System.Web.Http; namespace QueryArray.Controllers { public class MyController : ApiController { //one?value=1&value=a //return:"1,a" [HttpGet] [Route("one")] public string Get() {
モチベーション 翻訳: WebAPI 設計のベストプラクティス - Qiita JSON はデフォルトで整形しよう 圧縮された状態の JSON をブラウザ上で見るのは、決して気持ちの良いものではありません はい。整形されたJSONを返したいです。 手段 Web API Poster - ASP.netによると、アクション(Controllerのメソッド)の返した結果を変更するには、ActionFilterを追加します。 事後処理はOnActionExecutedメソッドに定義します。 using System.Net.Http.Formatting; using System.Web.Http.Filters; namespace WebApplication1 { public class PrettyPrintFilterAttribute : ActionFilterAttribut
RSS フィードを作る プロ生ちゃんこと暮井 慧らが活躍する Web コミック「すぱこー」。Web マンガ更新チェッカー【ピンガ】でも更新チェックできます(少し反映遅いかも?)。このピンガでの取り扱いがきっかけで、コミックのみの RSS フィードを作りました。 すぱこーでも活躍するプロ生ちゃんが、「アキバで見かけた萌えキャラコンテスト」にエントリーされています。「暮井 慧(プロ生ちゃん)」への投票お願いします(12/18 20時まで)。プレゼントも当たります。 というわけで、さくっと RSS フィードなど XML 文書を返すサービスを ASP.NET MVC 5 での作り方を紹介します。 ASP.NET プロジェクト作成 開発環境は Visual Studio 2015 Update 1 です。新規に Visual Basic の ASP.NET プロジェクトを作ります。Web API を
ASP.NET Web API は、デフォルトで Json, Xml, FormUrlEncoded の書式に対応しています。 データを取得する際は、リクエストのヘッダー Accept 値で、どの書式でデータを取得するか指定できます。 また、コードを数行追加すれば、「~/api/movies.json/」のように URL で指定したり、 QueryString「~/api/movies/all?format=json」、カスタムヘッダー値で指定できたりします。 例 実際にやってみます。 下のように「~/values/」で Person データを取得する API を用意します。 public class ValuesController : ApiController { public Person Get() { var person = new Person() { Id = 1, Na
ASP.NET Web APIの勘所 日本マイクロソフト株式会社の赤間さんのセッションを見た時のメモ Web APIというとRESTful型、JSONエンコードというイメージがあるがRPC型、XMLエンコードもいいよ サーバー・クライアント間の通信 RESTfulスタイル エンティティオブジェクトのCURD処理の形で実装 RPCスタイル 処理伝票の送信と結果伝票の受信の形で実装 ASP.NET Web APIのサンプルでRESTfulなサーバーAPIを開発するというのをよく見かける ASP.NET Web APIはRESTfulスタイル用の技術ではない! マッピングルールを変更するとRPCスタイルも使える ASP.NET Web APIの既定のマッピング URL:コントローラクラス名 HTTP Verb:メソッド名 HTTP Verb 意味
追記 自分でコンソールアプリを作らなくても、NuGet から OwinHost をインスト すれば、プロジェクトフォルダ内に OwinHost.exe が追加されるので、それを使う方法もあります。Katana で Hello, world === Web API を利用したストアアプリを作成&デバッグしているときに、いちいち Visual Studio で ASP.NET Web API を起動するのが面倒だったので、セルフホストを使って exe で実行できるようにしました。 トレース機能を有効にすると、Web API の呼び出しに合わせて内部の様子が確認できるので便利です。 セルフホスト自体は ASP.NET Web API 登場時からできましたが、ASP.NET Web API 2 が OWIN にフル対応したので、今はもう OWIN でホストすることで、セルフホストが可能になります。
by Mike Wasson This tutorial shows how to host a web API inside a console application. ASP.NET Web API does not require IIS. You can self-host a web API in your own host process. New applications should use OWIN to self-host Web API. See Use OWIN to Self-Host ASP.NET Web API 2. Software versions used in the tutorial Web API 1 Visual Studio 2012 Create the Console Application Project Start Visual S
ASP.NET MVC では DataAnnotations を使ってバリデーションを行うのが一般的ですが、 ASP.NET Web API ではどうやってやるのか調べてみました。 Visual Studio 2013 で確認しています。 要件としては以下のような感じとします。 Controller の引数でクラスを受け取り、クラスに対して属性を付与してバリデーションする バリデーションエラーがある場合、エラー内容とともに Bad Request(400) を返す API のパラメーターを受けるモデルはこんな感じ。 public class SampleModel { [Required] [Display(Name = "なにかの値")] public string Value { get; set; } } コントローラーはこんな感じ。属性ルーティングを使っています。 [RoutePr
クラスを定義することが面倒な場合、JToken や dynamic で POST の Body 値を受け取ることができる。 以下のような HTTP Request を送信し、JSON で書かれた Body 値を読み取るとする。 Content-Type : application/json Body : { "name" : "taro", "message" : "hello" } クラスを定義する場合 Body 値をバインドするためのクラスを定義する: public class HogeRequest { public string Name { get; set; } public string Message { get; set; } } ApiController に以下のようにアクションを定義する: [Route("api/model")] public void PostM
一般的に Web API のバージョニングを実現する方法として、URL にバージョンを含める方法とクエリパラメータや HTTP ヘッダーでバージョンを指定する方法の 2 種類が使われています。 例を挙げると Twitter や Instagram の API は URL でバージョンを指定します。 https://api.twitter.com/1.1/statuses/user_timeline.json https://api.instagram.com/v1/media/popular?client_id=CLIENT-ID対して Azure の REST API では、クエリパラメータや HTTP ヘッダーでバージョンを指定します。 https://[search service name].search.windows.net/indexes?api-version=2015-0
ASP.NET MVC でファイルアップロードを実装する場合は、モデルバインダが HttpPostedFileBase クラスなどに自動的にバインドしてくれていましたが、Web API だとそこまで面倒は見てくれないみたいです。 これまで Web API での実装方法を知らなかったですが、今回ついに観念して調べました。 Sending HTML Form Data in ASP.NET Web API: File Upload and Multipart MIME | The ASP.NET Site MultipartFormDataStreamProvider クラスを使うとアップロードされたファイルをストレージ上に保存してくれるみたいですね。メモリストリームとして扱い続けるよりも楽な感じがします。 サンプルコードでは App_Data に入れてましたが、個人的に Temp のが良い気
One of the main new features of ASP.NET 5 is unifying the programming model and combining MVC, Web API, and Web Pages in single framework called MVC 6. In previous versions of ASP.NET (MVC 4, and MVC 5) there were overlapping in the features between MVC and Web API frameworks, but the concrete implementation for both frameworks was totally different, with ASP.NET 5 the merging between those differ
追記:この記事はバージョンが古いものです。より新しい情報について Swagger 2.0 に対応した ASP.NET Web API のドキュメントを作成する こちらをご覧ください。 ASP.NET Advent Calendar 2014 17 日目 の記事です。前回は iwate さんの ASP.NETプロジェクトからDBコンテキストを切り離してマイグレーションする です。 この記事では、Swagger を使った ASP.NET Web API のドキュメントを生成する方法について書きます。 ASP.NET Web API のドキュメント生成といえば、NuGet Package「Microsoft.AspNet.WebApi.HelpPage」を使う方法 がありますが、やや欠点があります。 その欠点をカバーできる Swagger の概要を確認した後、実際に ASP.NET Web AP
注意 このページにアクセスするには、承認が必要です。 サインインまたはディレクトリの変更を試すことができます。 このページにアクセスするには、承認が必要です。 ディレクトリの変更を試すことができます。 ASP.NET Web API のセキュリティ フィルター Badrinarayanan Lakshmiraghavan 認証と承認は、アプリケーション セキュリティの土台です。認証とは、指定された資格情報を検証することでユーザーの ID を確立することです。承認とは、ユーザーが要求した操作の実行を許可するかどうかを決定することです。セキュアな Web API は、要求を認証し、確立された ID を基に要求されたリソースへのアクセスを承認します。 ASP.NET Web API に認証を実装する場合、ASP.NET Web API パイプラインの中で利用可能な拡張ポイントを使用するか、ホスト
メディア 連載一覧 連載まとめ読み@IT eBook 記事ランキング @IT Special セミナー ホワイトペーパー クラウド AI IoT アジャイル/DevOps セキュリティ キャリア&スキル Windows 初・中級者向けAI その他 Server & Storage HTML5 + UX Smart & Social Coding Edge Java Agile Database Expert Linux & OSS Master of IP Network Security & Trust Test & Tools Insider.NET ブログ New! AIを作り動かし守り生かす ローコード/ノーコード クラウドネイティブ Microsoft&Windows その他の特集 @IT アジャイル/DevOps Insider.NET 連載:ASP.NET Web API 入
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く