なみひらブログ

学んだことを日々記録する。~ since 2012/06/24 ~

API

Go製Webアプリのサーバ実行環境整備の作業メモ

背景 golangで作ったWebアプリをサーバで動かすためのやったサーバ整備の作業メモです。 作業メモ golangをinstallする 参考 Getting Started - The Go Programming Language yum install go 実際は「golang」というキーワードでいれるらしいが、知らずに「g…

golang+EchoでREST APIを作った話

背景 新しいWebアプリ(今回はREST API層だけ)を作るにあたって、これまでJava+SpringFrameworkばかりだったので、他の言語で作ってみることにしました。 (ちょうど仕事上もJava+SpringFrameworkから離れているので) 言語候補として、近くで使っている人…

Androidアプリでのセキュリティ情報の定義方法

背景 Androidアプリ開発にてセキュリティ情報(他サービスのAPIキーなど)を定義しますが、それらの情報はGithubなどのソースコード管理にコミットはしないほうがいいので、その定義方法を書いておきます。 定義方法 セキュリティ情報の定義 security.proper…

Spring MVC+Jacksonで日付文字列をLocalDateTimeにマッピングする

背景 spring-webmvcを使ったWebAPIで、Java8で追加されたLocalDateTimeに対応したときのメモです。 ゴール 以下のようなJSONをLocalDateTimeのパラメータにマッピングします。 (日時のフォーマットは一例です) リクエスト { "name" : "test", "createdAt" …

SpringBoot Actuatorの動作確認メモ

背景SpringBoot Acuatorについて動作確認したので、そのあたりのことをメモっときます。 概要 » Spring Boot Actuator でサーバの状態を確認する TECHSCORE BLOG 簡単にいうと、Spring BootアプリケーションにAcuatorを適用すると、アプリケーションの設定や…

SpringFrameworkでのJSON Validationの実装/動作確認メモ

背景SpringFrameworkでAPIを実装するときにリクエスト内容の妥当性確認(Validation)をよく行うので、その実装パターン/挙動をメモっときます。 今回は、ユーザ情報をPOSTする際に妥当性を検証するAPIを題材にしています。事前準備必要なライブラリを入れる…

SpringアプリケーションでJSONレスポンスを返却するときに"406 Not Acceptable"が発生したときの話

背景@RestControllert使ってJSONレスポンスを返すようにして、アクセスしてみたら以下のエラーが発生しました。その際の対応をメモっておきます。 (以下レスポンス(HTML)の抜粋) 406 Not Acceptable The resource identified by this request is only capa…

WebAPIを設計するときに考えること

背景WebAPIを設計してきて、最近ある程度考え方・注意点がまとまってきたので整理も兼ねてメモっときます。観点 同じ事柄を表すリソース構造には一貫性があること例えば「人」を表す際に、叩くAPIによってリソース構造を変えてはいけない(単体での情報取得A…

Arrays.asListが返すListの仕様について

背景Java8でCollectionインターフェースに追加されたremoveIf()を試そうと思ったら、別件でエラーが発生したのでメモっときます。 修飾子と型 メソッドと説明 default boolean removeIf(Predicate filter) 指定された述語を満たすこのコレクションの要素をす…

MathクラスのnextDownメソッド

背景以下の本にJavaプログラマーなら習得しておきたい Java SE 8 実践プログラミング作者: Cay S. Horstmann,柴田芳樹出版社/メーカー: インプレス発売日: 2014/09/22メディア: 単行本(ソフトカバー)この商品を含むブログ (7件) を見る doubleとfloatの両…

Java7以降のnullチェックの仕方

背景メソッドを実装する際、そのメソッドの実行の事前条件を満たしているか確認するため「防御的プログラミング」をする必要があります。その「防御的プログラミング」の例として、「引数のnullチェック」があります。その「引数のnullチェック」の記法につ…

ラムダ式がどのように実現されているかを確認してみました。

背景Java8で新仕様として「ラムダ式」が追加されました。 そのラムダ式がどのように実現されているか、確認してみました。簡単な確認Java7以前比較のために、まずJava7以前のコードを以下のように書いてみます。 Java7まではメソッドの引数として、無名クラ…

Java8で、Objectが持つメソッドについてはインターフェースでdefault実装をできないようにしている理由

背景Java8にて、インターフェースにdefaultメソッド(メソッド定義と実装)を定義できるようになりました。しかし、その実装においてObjectクラスが持っているメソッド(toString()とかequals()とか)は、インターフェース内でdefault実装として定義できない…

社会人人生で出会った良本のまとめ【入社~5年】

今年度が終わると社会人満5年が経つので、この期間に読んだ良本をまとめておきます。略歴 学生時代 物理専攻、プログラミング経験なし オシロスコープ、Linux(Vine Linux)などなど。 1年目 社会人研修、情報系研修 C、C++、Java、オブジェクト指向、組み込み…

JDK の互換性の情報

JDKの新しいバージョンがリリースされると、下位バージョンとの互換性についての情報もリリースされます。例えば、以下のような情報です。 JDK 8の互換性ガイド今まで意識していませんでしたが、製品のJDKのバージョンを上げる際には一読しておきたいもので…

interfaceがObjectのメソッドをオーバーライドする理由

以下の書籍Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング作者: Cay S. Horstmann,柴田芳樹出版社/メーカー: インプレス発売日: 2014/09/22メディア: 単行本(ソフトカバー)この商品を含むブログを見るに以下のような記載があったので…

現在公開されているAPI一覧【2013年版】

あとで参照するようにメモっときます。日本の全エンジニアに捧ぐ!現在公開されているAPI一覧【2013年版】 | Find Job ! Startup