元々は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にアクセスしているか説明
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を複数言語で実装したらいいんじゃね?」 と思った。いくつかの言語で実装を起こしてみている。 前提条件 大規模な開発を想定する。ユーザの規模が大規模。トランザクション数が大規模。そして、開発者が大規模。 実用的かつモダンな開発を想定する。プロジェクト毎のバージョン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く