はじめに こんにちは。しがないOLくにきちです。 ブログ書くのが少し空いてしまっていたら、いつの間にか Springfox のバージョンが上がって 2.7.0 -> 2.8.0 になっておりました!ヽ(▽`)ノワーイ♪ 前回のブログで設定した内容に追加をしたいと思いますので、後述します。 本ブログの構成 バージョンアップに伴う設定の追加 Swagger ドキュメントのカスタマイズ API定義(@Api) API操作定義(@ApiOperation) レスポンス定義(@ApiResponses、@ApiResponse) パラメータ定義(@ApiParam) バージョンアップに伴う設定の追加 冒頭で書きましたが、Springfox のバージョンが 2.7.0 -> 2.8.0 になりました。 このアップデートで Swagger-ui が 3系 になっているので、見た目がガラリと変わります。
この記事は、Java Advent Calendar 2013の2日目として書かれたものです。 Java SE 8では、Stream APIという新しいAPIが導入されます。Stream APIは、何らかの要素の集まり(配列やコレクション、あるいはテキストファイルを読み取るときの一行一行など)に対するさまざまな操作を抽象化した、とても便利なAPIです。 Stream APIは、Java SE 8の新機能としても特に注目されているものの1つでしょう。類似の仕組みがC#やScalaやRubyなど他の言語でも広がっており、Javaにもついに、と待ち望んでいる方も多いでしょう。 ところが、Streamインターフェースが持つ様々な便利メソッド(filter、map、flatMap、collectなど)は、あちこちでよく紹介される一方で、次の2点は、あまり注目されていないように思いました(ぼくが見た限
はじめに Java SE 8がリリースされて、そろそろ1年が経とうとしています。早いものです。 それはすなわち、Java SE 7のサポート切れが間近に迫っているということでもあります。 そこで今回は、改めてJava SE 8の理解のポイントを解説しようと思います。 ラムダ式・Stream APIの2点が、Java SE 8の目玉となる新機能です。 こんなコードが出てきます。 List<Emp> source = Arrays.asList( new Emp(101, "Nishida", Dept.ADMIN, 500000), new Emp(102, "Nohira", Dept.SALES, 285000), // 以下省略 ); // ラムダ式&Stream API! // EmpのListから、Deptが「SALES」の要素のみ抽出し、名前のみのListに集約する List<S
元々はC#、最近はNode.jsがコーディングの主流だったのですが、仕事で久々にJavaを使うことになりました。Javaは10年以上前にJava AppletからJNIでPCの周辺機器を操作するようなものを作って以来です。ServletとかTomcatとかStrutsとかとは無縁に生きてきました。 というわけで、久々にJavaを使って見たら、Spring 3.0~ にRestTemplateとかいう余りに素敵なクラスがあって驚いて鼻血が出たので、驚きを記事にしてみました。 RestTemplate RestTemplateの何がすごいかというと、Rest APIを呼び出すのに1行だけで済んでしまうという点です。これまでなら、HttpConnectionをOpenして、そこからBufferedWriterで書き出して、ResponseをBufferedReaderで読み込んで、みたいなことを
今回は、SpringのRestTemplateを使って外部のWeb API(REST API)にアクセスするようなコンポーネントに対するJUnitテストケースの書き方を紹介します。単体テストでは、Mockitoなどのモック化フレームワークを使って依存コンポーネントの振る舞いを変えることも多いと思いますが、今回は、Spring Testが提供しているMockRestServiceServerを使います。 動作検証環境 Spring Framework 4.3.0.BUILD-SNAPSHOT (2016/6/4時点) Spring Boot 1.4.0.BUILD-SNAPSHOT (2016/6/4時点) RestTemplateって何者!? MockRestServiceServerが何者か説明する前に、RestTemplateが何者でどんな仕組みでWeb APIにアクセスしているか説明
概要 SpringBootで構築しているWebアプリケーションで、Controllerに対して共通処理を行いたい。 主に簡単な認証処理で、ログイン状態であればControllerでの処理、ログイン状態でなければログイン画面へ遷移させたい。 URLパスやパッケージベースでなく、Annotationで管理したい。 方法 HandlerInterceptor を使うことで実装が可能になる。 HandlerInterceptorをimplementしたクラスでは preHandle postHandle afterCompletion を実装する必要がある。 それぞれ、 preHandle → Controllerにリクエストが行く前に呼ばれる postHandle → ビューのレンダリング前に呼ばれる。RestControllerでは呼ばれない。 afterCompletion → ビューのレン
HAL - Hypertext Application Language A lean hypermedia type Author: Mike Kelly <[email protected]> Created: 2011-06-13 Updated: 2013-09-18 (Updated) Summary HAL is a simple format that gives a consistent and easy way to hyperlink between resources in your API. Adopting HAL will make your API explorable, and its documentation easily discoverable from within the API itself. In short, it will make yo
Swaggerを使ってAPI定義をしてスタブを動かしてみます。 Swaggerの関連ツールは様々な言語に対応していますが、ここではNode.jsを使って試してみます。 Swaggerとはなんぞ? Swaggerは関連ツールが多くあるので全容がつかみにくいのですが、 What is Swagger? The goal of Swagger™ is to define a standard, language-agnostic interface to REST APIs which allows both humans and computers to discover and understand the capabilities of the service without access to source code, documentation, or through network
背景 最近は変化し続ける要件に対応するために、システムも柔軟であることが求められています。 そのため、部分的に変更やスケールの可能なシステムを構築し、API経由で連携するマイクロサービス的アーキテクチャが増えてきています。 そういった設計の中で問題になっていくのが、従来のモノリシックなアプリケーションではIDEやコンパイラなどで行っていた、機能間のインターフェイスをどう管理するかという部分です。 Swaggerとは? SwaggerとはRESTful APIのドキュメントや、サーバ、クライアントコード、エディタ、またそれらを扱うための仕様などを提供するフレームワークです。 公式サイトでは、The World's Most Popular Framework for APIsと謳っています。 その理由は、マイクロソフト、Google、IBM、SmartBearなどを大手の企業を含む「Open
Swagger places API specifications such as OpenAPI, AsyncAPI, and JSON Schema at the core of its architecture, which are crucial for guiding teams through the entire lifecycle of API design and documentation. This strategic focus ensures that our suite, including open source tools and Swagger Enterprise, delivers unparalleled efficiency and a seamless user experience. Explore the API Specifications
デジタルビジネス時代を迎え、API連携へのニーズがこれまで以上に高まっている現在、API仕様を管理するOSSフレームワーク「Swagger」(スワッガー)が大きな注目を浴びています。本連載では、同フレームワークの未経験者・初心者を対象に、その概要や基本的な使い方を解説していきます。 仕様と実装の乖離が許されないAPI システム開発のトレンドとして、マイクロサービス化が進んできています。モノリス(一枚岩)スタイルの開発に比べて、アプリケーションの単位は小さくなり、多くのサービスが構築されます。 Uberの配車ビジネスやAirbnbの民泊に代表されるデジタルビジネスにおいても、APIエコノミー化が進んできており、Google Map APIやTwitter APIなどさまざまなAPIを組み合わせて素早くシステムを構築します。 Programmable Webでは、2017年1月時点で16,59
ForgeはJava EE6を利用したWebアプリケーション(のひな形)の作成 〜 アプリケーションサーバへのディプロイまで可能なコマンドラインツールです。作成されるアプリケーションはMavenプロジェクトのため、そのままIDE等で開くことができます。 また、プラグインによりサポートするフレームワークやAPサーバが追加できします。自分でプラグインを作成することもできます。 今回はForgeでJPAとJSFを使ったサンプルアプリケーションを作ってみます。 まず、Forgeをダウンロードして展開します。 $ https://repository.jboss.org/nexus/service/local/artifact/maven/redirect?r=releases&g=org.jboss.forge&a=forge-distribution&v=1.0.5.Final&e=zip $
Oracle Blogsの主としてテクノロジー製品のエントリを日本語でご紹介します(オリジナルのエントリを投稿することもあります)。厳密性をご所望の方は原文をどうぞ。よい内容でしたら原文に対し、"Good Entry, thanks!"でもいいので、是非コメントお願いします(Typoや誤訳はコメント欄からどうぞ)。なお、このエントリは個人の見解であり、所属する会社の公式見解ではありません。また、エントリ内でご紹介している製品・サービスは国内導入時期が未定の場合もありますのでご了承下さい。 Good entries on Oracle Blogs are put into Japanese. Mainly this blog covers technology products. Opinions expressed in this blog is my personal one and d
ルーキーアーキテクトのTechnical Tips : 目次 目次の巻 JAX-RSでRESTful Webサービス 皆さん、なにかしらWebサービスを開発したことありますか? 世の中、たくさんのWebサービスが提供されています。それは.NETかもしれないしRubyかもしれません。 本連載では、JavaのRESTful仕様であるJAX-RSを使って、Webサービスの作り方を解説します。 最初の問いかけに"Yes"だった方も、"No"だった方も、少しの間お付き合いくださいませ。 第1回 いまさら始めるJavaでRESTful Webサービス構築 (2012/02/15 up) >>こちらから 第2回 実践!RESTful Webサービス構築 (2012/03/15 up) >>こちらから 第3回(最終回) データベースと連携させよう! (2012/04/27 up) >>こちらか
HTTPでアクセスして、JSONを返すようなWebサーバを書きたいとする。 どんな言語を選ぶか。どんなミドルウェアを選ぶか。どんなライブラリを選ぶか。 たとえば、TIOBE Softwareが公表している「Programming Community Index(PCI)」という指標がある。人気のあるプログラミング言語の数値化。これを見ていて思ったのは、「多すぎだよね、プログラミング言語」ということ。これらのうち、どの言語を勉強し、どの言語をプロジェクトに採用すべきなのか。 その感触を得るために、 「同じ仕様のREST serviceを複数言語で実装したらいいんじゃね?」 と思った。いくつかの言語で実装を起こしてみている。 前提条件 大規模な開発を想定する。ユーザの規模が大規模。トランザクション数が大規模。そして、開発者が大規模。 実用的かつモダンな開発を想定する。プロジェクト毎のバージョン
Google AppEngineではBigtableの上にDatastore Serviceが構築されていて、開発者は、このDatastore Serviceを利用してBigtableにアクセスすることになります。このDatastore ServiceはPython版もJava版も機能はほとんど同じです。もしかすると、全く同じものかもしれません。 GAE/Jの場合、JDOを通じて、Datastore Serviceを利用するのが推奨されていますが、実はこれが嵌りポイント。 JDOは汎用的なインターフェースなので、Datastore Serviceを理解するのには向いていません。Datastore ServiceがRDBMSのような高機能なら、JDOを通じて抽象化し、Datastore Serviceのことは知らなくても済すのもぜんぜんありなのですが、残念ながら、そうなってはいません。 Da
Google App Engine ã«ã¤ã㦠Google App Engine ã使ç¨ããã¨ãGoogle ã®ã¤ã³ãã©ä¸ã§èªä½ã® Web ã¢ããªã±ã¼ã·ã§ã³ãå®è¡ã§ãã¾ããApp Engine ã¢ããªã±ã¼ã·ã§ã³ã¯ãæ§ç¯ãç¶æç®¡çãç°¡åã§ããã¾ããã©ãã£ãã¯ããã¼ã¿ ã¹ãã¬ã¼ã¸ã®å¢å¤§ã«åããã¦å®¹æã«æ¡å¼µã§ãã¾ããApp Engine ã§ã¯ããµã¼ãã¼ãç¶æç®¡çããå
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く