{ } myjson A simple JSON store for your web or mobile app © 2020 Myjson 1.1.0.beta About API - (CORS enabled) 4,494,909 JSONs stored
type: file path_prefix: /tmp/embulk/test parser: charset: UTF-8 newline: CRLF type: csv delimiter: ',' quote: '"' escape: '"' trim_if_not_quoted: false skip_header_lines: 1 allow_extra_columns: false allow_optional_columns: false columns: - {name: ken_code, type: string} # キーカラム - {name: name, type: string} # # ここからがfilterの設定 # filters: - type: join_file # 元データにあるカラムの名前、parser内のカラム名と対応づけする base_co
はじめに RDBで簡易的な検索機能を実装して使っていましたが、それだけでは柔軟な検索ができず 性能的にも問題が出てくるため、全文検索エンジンを導入することにしました。 この記事では、RDBに格納されているデータをElasticsearchに投入して全文検索できる ようにするところまでを紹介したいと思います。 環境 インフラは下記構成(全てAWSです) ※マネージドサービスは運用楽でいいですねー サービス名 バージョン (以降、ElasticsearchはESと書きます。長いので^^;) ESはVPCアクセス(VPC内で動くモード)とし、VPC内からのアクセスは全て許可しています。 PrivateDNSで下記CNAME設定しています(エンドポイント長いので) RDS・・・ postgres.local ES ・・・ ftsearch.local ちなみに、この記事はPostgreSQLを前提
Elasticsearch実運用時に個人的に気をつけている点をまとめました。 自分でも整理できていない部分がありますので、間違っている点・追加した方が良い点などありましたら教えていただけると非常に助かります。 目次 目次 インデックス・スキーマ設定 スキーマを事前に定義しておく _allの使用は必要な時のみ行う 部分一致検索をしないstringフィールドにはnot_analyzedをつける doc_value:trueをつける できるだけエイリアスを使う 必要に応じてルーティングを行う 本体の設定 ヒープメモリを適切に設定する スワップしないように設定 スプリットブレイン対策を行う field data cacheに上限を与える 検索高速化 Warmerを登録する queryとfilterを使い分ける filterのキャッシュ設定を使い分ける 必要無いフィールドは検索の際に取得しない イン
今回は少し、思考を変えてシステムを開発する際にどんなところで Elasticsearch を使えるのか?という視点で説明したいと思います。 最近のシステムの特徴 最近のシステムは、ビッグデータの重要性の認知、ソーシャルデータの活用など、1つのシステムでも様々な種類のデータを管理し活用するようになってきました。また、クラウドサービスやオープンソースが当たり前に使われるようになり、データを管理し活用するためのシステムやサービスも様々な選択肢があります。 そのため、最近のシステムではデータの利用目的によってデータストアを使い分けることが多くあります。 例えば、商品情報など構造化されたデータは、ビジネス要件を満たすためにデータを矛盾なく永続化する必要があるため、MySQL などのリレーショナル・データベースに保存されます。 また、更新や参照トラフィックが多くデータ数も多いゲームやモバイルアプリケー
SRE(Site Reliability Engineering)チームの@cubicdaiyaです。今年のはじめから開発しているWidebulletというシンプルなAPI Gatewayを紹介します。 WidebulletはJSON-RPCをベースにしたシンプルなAPI Gatewayです。Goで書かれています。 github.com JSON-RPCはJSONによるRPC(Remote Procedure Call)プロトコルで、リクエストやレスポンスのボディに含まれるJSONを利用してクライアント/サーバ間の通信を行います。 # リクエストボディ { "jsonrpc": "2.0", "method": "echo", "params": {"msg": "ok"}, "id": "1"} # レスポンスボディ {"jsonrpc": "2.0", "result": "ok",
これは Enchant の開発者である Vinay Sahni さんが書いた記事「Best Practices for Designing a Pragmatic RESTful API」1を、ご本人の許可を得て翻訳したものです。 RESTful な WebAPI を設計しようとすると、細かなところで長考したり議論したりすると思います。また、他の API に倣ってやってはみたものの、本当にそれでいいのか、どうしてそうしているのか分からない、何てことも少なくはないと思います。 この記事では、そのようなハマリどころについて Vinay さんなりの答えを提示し、簡潔かつ明快に解説してくれています。 今後 WebAPI を設計される方は、是非参考にしてみてください。 なお、誤訳がありましたら編集リクエストを頂けると幸いです。 まえがき アプリケーションの開発が進むにつれて、その WebAPI を公
以下なドキュメントを発見しておりまして。 HTTP API Design Guide なんとなくメモをとってみました。 Contents として以下が列挙されています。 適切なステイタスコードを戻しなさい 戻すことができる全てのリソースを戻しなさい リクエストボディに含まれるシリアライズされた JSON を受け付けなさい ID じゃなくて UUID 使った方が良いですよ 標準的なタイムスタンプを使いましょう UTC 時刻は ISO8601 フォーマットで使いましょう 一貫性のあるパスフォーマットを使いましょう 小文字とダッシュを使いましょう 外部キーのリレーションは入れ子に 利便性をはかるため non-id dereferencing をサポートしなさい エラーの場合のレスポンスボディについて ETag ヘッダを含めなさい Request-Id ヘッダを API レスポンスに含めなさい P
Mock your back-end API and start coding your UI today.It's hard to put together a meaningful UI prototype without making real requests to an API. By making real requests, you'll uncover problems with application flow, timing, and API design early, improving the quality of both the user experience and API. With Mockaroo, you can design your own mock APIs, You control the URLs, responses, and error
WebAPIの仕様を記述する方法はいくつかあると思う。 普通に日本語で記述する JSON Hyper-Schema、WADL、RAML、Swaggerなどを使う 仕様書の代わりにプログラムを書く HTTPメッセージそのものを記述しておく でも、文法にばらつきがあったり、読みにくかったり、ツールのセットアップが面倒だったり、どれもイマイチな所があって、手軽な方法が欲しいと思っていた。 何気なくcurlコマンドのオプションを調べていたら、「もうこれでAPIドキュメント扱いにしちゃえばいいんじゃね?」と思えてきたのでメモしておく。 curlコマンドのおさらい curlコマンドはlibcurlの付属コマンドで、最近のUnix系OSなら大抵最初から入っていると思う。コマンドの詳細はmanを読んでいただければ。 cURL - How To Use (マニュアルページ日本語訳) curlコマンドのオプシ
2012年頃に、PHPのJSONエクステンションのソースコード中に次のようなライセンス文言が含まれていると話題になりました。 The Software shall be used for Good, not Evil. これはJSONライセンスと呼ばれるライセンスの一文です。「このソフトウェアを良いことに使うのはいいけど、悪いことには使っちゃダメ」といったところでしょうか。 これはフリーソフトウェアの定義に反しており*1、各種LinuxディストリビューションでJSONエクステンションを配布できないことになるため、ちょっとした騒動になったというわけです。 本稿ではこのJSONライセンスへの対応が現在どうなっているかを紹介します。 各種Linuxディストリビューションの対応 PHPのJSONエクステンションはjson_encode()やjson_decode()などの重要な関数を提供するエクス
現在ではREST APIはとても一般的な話題です。ほとんどすべてのWebアプリケーションの一部分となっています。シンプルで一貫性があり実際的なインターフェースは必須です。これは皆さんのAPIを他の人が使うことをとても容易にします。皆さんにとってはRESTの実践が日常的に感じられるかもしれませんが、RESTをあまり尊重しない人々もよく見かけます。これがRESTについて投稿するきっかけでした。 この記事にはRESTfulなAPIを設計する時に考慮すべきベストプラクティスがあります。 注意 : ここでのベストプラクティスは、私が過去の経験に基づいて良いと考える事例です。もし違う考えをお持ちであれば、お気軽にメールをくだされば意見交換できると思います。 APIのバージョンを示す APIのバージョンは必須であるべきです。これがあると時間が経ってAPIが変わっても影響を受けません。その方法の1つはUR
PostgreSQL 9.4がリリース。ドキュメントDB並の性能でJSONBサポート、レプリケーション機能の高度化など PostgreSQL 9.4の主な新機能は、バイナリ形式のJSONであるJSONBのサポート、高度なレプリケーションに利用できる新しいAPI、GINインデックスの高速化など。 一般的なドキュメントデータベース並の高速性 PostgreSQLでは以前のバージョンからJSON形式をサポートしていましたが、今回サポートされたJSONB形式は、バイナリ形式のJSONデータへの対応です。JSOBのサポートGINインデックスの高速化によって、ドキュメントデータベース並みの高速性を実現したとのこと。 JSONB supports fast lookups and simple expression search queries using Generalized Inverted In
NoSQLのAmazon DynamoDBがJSONドキュメントに対応、25GB/月間2億リクエストまで無料枠も拡大 Amazonクラウドが提供している「Amazon DynamoDB」は、フルマネージドのNoSQLデータベースです。ほぼ無限にデータベースをスケールさせることができるため容量のことを気にする必要がなく、固定されたスキーマを持たない柔軟性と、SSDを利用することによる高いスループットを実現。NoSQLでありながら一貫性を制御するオプションも備えています。 まさにクラウドの特長を活かしたサービスであるDynamoDBが、JSONドキュメントをデータ型としてサポートしたと発表されました。 これでDynamoDBのスケーラビリティや性能はそのまま、キーバリュー型だけでなくJSONドキュメントも扱えるようになりました。 キーバリューに加えてJSONドキュメントも JSONとは、Jav
DeNAの奥さんと、はるぷさんがJSON SQL Injectionについて公表されています。 The JSON SQL Injection Vulnerability 不正なJSONデータによるSQL Injectionへの対策について (Json.pm+SQLクエリビルダー) 上記の記事は、主にPerlスクリプトがJSONデータを受け取るシナリオで説明されています。もちろん、この組み合わせに限定したはなしではないわけで、それではPHPではどうだろうと思い調べてみました。 JSON SQL Injectionとは 以下、はるぷさんの「不正なJSONデータによる…」にしたがってJSON SQL Injectionについて説明します。 Perl向けのSQLジェネレータの一つであるSQL::Makerにおいて、以下のスクリプトを想定します。 my ($sql, @bind) = $builde
(著者:サイボウズ kintone開発チーム 天野 祐介) kintoneはJavaScriptを使って自由にカスタマイズすることができます。 カスタマイズにより独自のリッチなUIを構築したり、新しい機能を追加したりできるようになりますが、セキュアなコーディングをしないとクロスサイトスクリプティング脆弱性を作り込んでしまう危険性があります。 この記事では、JavaScriptでセキュアなコーディングをするための基本的な点を解説します。 主な原因 脆弱性を作り込む主な原因になるコードは、要素の動的な生成です。特に、レコード情報などのユーザーが入力した値を使って要素を生成するときに脆弱性が発生しやすくなります。 対策 document.write()やelement.innerHTMLを使って要素を生成するときは、コンテンツとなる文字列をかならずHTMLエスケープするようにしましょう。 以下は
SAP、業務アプリ用のJavaScript製UIライブラリ「OpenUI5」を公開。レスポンシブ対応でモバイルデバイスにも 業務アプリケーション最大手の独SAPは、業務アプリケーションのためのJavaScript製JavaScrit UIライブラリ「OpenUI5」をオープンソースとして公開しました。 OpenUI5は、同社のモバイルアプリケーションなどに用いられているJavaScript製ライブラリ「SAPUI5」の主な機能をオープンソース化したもの。jQuery、CSSプロセッサのLESS、ODataライブラリのdatajsなどが使われています。 ボタンやアコーディオン、メニュー、テーブル、ダイアログと言った部品だけでなく、レスポンシブ対応のグリッドレイアウトなどのレイアウト用部品も含まれており、モバイルデバイスに対応するレスポンシブデザインのUI構築が可能になっています。 JavaS
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く