【SAPUI5】ODataを構成するもの
はじめに
SAPUI5でアプリケーションを作るにあたり、ODataは避けては通れないトピックです。
結構広いテーマなので、5~7回くらいに分けて書きたいと思います。
1回目はODataの概要について説明します。
ODataとは
OData(Open Data Protocol)とは簡単に言えば、HTTPを使ってサーバとブラウザでデータをやり取りするためのプロトコルです。
Microsoftが作った仕組みで、それをSAPでも利用しています。
イメージ
ODataのベースとなる考え方
ODataは"REST"の考え方がベースとなっています。
REST(REpresentational State Transfer)とは、Webサービスにおけるアーキテクチャのスタイルの一つです。
対象のリソースをURIで指定し、HTTPメソッド(GET, POSTなど)によって操作します。
OData – Everything that you need to know (Part 2)より引用
Representationとは
RepresentationとはURIによって指定されたリソースまたはその一部です。
たとえばPersonというリソースがあり、その人の連絡先情報を取得するODataサービスがあるとします。この場合、氏名、住所、電話番号などがRepresentationとなります。
RESTful APIとは
RESTful APIとは、RESTの6つの原則に従って作られたAPIのことです。
6つの原則
原則 | 説明 |
---|---|
Client-Server | クライアト・サーバー型であること(データの格納場所とユーザインターフェースを分離するため) |
Stateless | クライアントからサーバへのリクエストは、サーバがリクエストを理解するのに必要な情報をすべて含むこと。サーバ側にクライアントの情報は保存しない |
Cacheable | サーバからのレスポンスには、明示的あるいは暗黙的にキャッシュの可否が示されること |
Uniform Interface | コンポーネント間で統一されたインターフェースを使用すること。このために、リソースの特定方法(URI)、操作方法(HTTPメソッド)などの決まりがある。 |
Layered System | レイヤー構成を可能にすること。クライアントはサーバではなく中間レイヤーと通信する場合もあるが、何とやり取りをしているかを意識する必要はない |
Code on Demand | サーバから送信されたコードをクライアントで実行することで、クライアント側の機能を一時的に拡張できるこ |
ODataの特徴
ODataには次のような特徴があります。
- URIを使ってデータを読み書きする
- 言語に依存せずに利用できる
- JSONまたはXML形式でレスポンスを返す
1. URIを使ってデータを読み書きする
URI(Uniform Resource Identifier)とは、その名の通りインターネット上のリソースを一意に特定するための名前、または場所、またはその両方のことを指します。(ちなみに、URLもURIの一部です)
ODataにアクセスする際は、以下のようにURIを指定します。
OData Version 4.0 Part 2: URL ConventionsInformation published on non-SAP siteより引用
ひとまず、「URLのような形式でデータの取得や更新ができる」という理解で十分だと思います。
2. 言語に依存せずに利用できる
ODataはHTTPをベースとした仕組みなのでクライアント側、サーバ側とも言語の制約がありません。(HTTPリクエスト、レスポンスを作れればよい)
参考までにODataの公式リファレンスには、HTTP, C#, JavaScript, C++, Node.jsのサンプルがあります。
3. JSONまたはXML形式でレスポンスを返す
ODataのレスポンスの形式はJSON、またはXML形式です。
どのようなデータ形式で欲しいかはリクエストで指定します。
まとめ
- ODataはRESTの考え方をもとに作られている
- URIを指定してリソースを操作する
- どのような言語でも使え、レスポンスはJSONまたはXML
参考
OData – Everything that you need to know (Part 1)
OData – Everything that you need to know (Part 2)
OData – Everything that you need to know (Part 3)
OData and SAP Netweaver Gateway. Part I. Introduction
RESTとは何か
Architectural Styles and the Design of Network-based Software Architectures
【SAPUI5】ODataを構成するもの的更多相关文章
- iOSシステム構成の纏め
iOSのアーキテクチャ a) iOSのアーキテクチャは階層化されている最上位レベルでは.iOSはそれが稼働しているハードウェアとアプリケーションの間の仲介役を果たします.アプリケーションが ...
- JSP基本_JSPの構成要素、アクション、ディレクティブ
1.JSPの構成要素[コア要素] JSP文法のコアとなる要素で.サーブレットソースに変換される. ・宣言: <%! - %> (宣言で指定した変数は.Javaの「フィールド変数」になる.ス ...
- 【SAPUI5】ODataとは
はじめに SAPUI5でアプリケーションを作るにあたり.ODataは避けては通れないトピックです.結構広いテーマなので.5-7回くらいに分けて書きたいと思います.1回目はODataの概要について説明し ...
- ASP.NET MVC + MySQL で開発環境構築
from:http://qiita.com/midori44/items/ef7cdd1d37c353e44b5f ASP.NET MVC & EntityFramework によるコードファ ...
- Buildroot構建指南--Overview【转】
本文转载自:http://www.unixlinux.online/unixlinux/linuxjc/gylinux/201703/65218.html Buildroot構建指南--Overvie ...
- 測試大型資料表的 Horizontal Partitioning 水平切割
FileGroup 檔案群組 :一個「資料庫(database)」可對應一或多個 FileGroup,一個 FileGroup 可由一或多個 file (.ndf) 構成. FileGroup 可讓 ...
- 【转】bind - DNS 設定
http://www.l-penguin.idv.tw/article/dns.htm 參考資訊 DNS 是所有伺服之母,電腦連節時均以 IP 為主,比方說輸入 202.43.195.52 就會到台灣 ...
- 第一次将内容添加到azure event hubs
由于每秒数据吞吐量巨大,需要将实时数据存到event hubs,再由event hubs定时定量保存到document DB. event hubs的介绍详见微软官页:https://azure.mi ...
- PGA
Server Process PGA 1.PGA作用 2.PGA構成 1)private sql area 2)session memory 3)sql ...
随机推荐
- 《O2O实战:二维码全渠道营销》读书笔记思维导图(530KB)
- JS检查输入项是否为手机号码或者固话号码的正则表达式
var reg = /^((0\d{2,3}-\d{7,8})|(1[34578]\d{9}))$/; //校验手机号和固定电话 if ( !reg.test(shop_tel) || check_e ...
- 生产环境rac无法启动
节点二crs无法启动,查看启动日志:ohasd.log位置在/u01/app/11.2.0/grid/log/host01/ohasd/ohasd.log另外root.sh的log在rootcrs_X ...
- matlab解方程
[x1,y1,x2,y2]=solve('x1^2 + y1^2=1','x2^2-8*x2 +y2^2 +15=0','x1*x2 + y1 * y2=1','x1 + x2 =a','x1','y ...
- HTTPS科普(转)
为什么需要https HTTP是明文传输的,也就意味着,介于发送端.接收端中间的任意节点都可以知道你们传输的内容是什么.这些节点可能是路由器.代理等. 举个最常见的例子,用户登陆.用户输入账号,密码, ...
- 数据结构与算法分析java——树1
1. 基本术语 度(degree):一个节点的子树个数称为该节点的度: 树中结点度的最大值称为该树的度. 层数(level):从根结点开始算,根节点为1 高度(height)/深度(depth):节点 ...
- ExtJS4 ajax请求同步异步问题
今天在写代码过程中遇到一个奇怪的问题.事情是这种,我写了一个简单的页面用来删除选中的用户,请看以下: 由于后台的servlet的代码实现了依据用户名来删除一条记录.所以我在前台的ExtJS代码里面用了 ...
- LA 3415 保守的老师
题目链接:https://vjudge.net/contest/161820#problem/E 题意: 有一些同学,要从中选出一些同学来,人数尽量多,但是,两两之间要满足至少一个条件(身高差> ...
- 创建maven项目后缺少jar包下载失败等问题
transfer.......fail.........等问题 The container 'Maven Dependencies' references non existing library ' ...
- ueditor图片上传,网络连接错误的解决方案
错误产生的原因是ueditor/net目录中的Uploader.cs在网站发布之后就没有了,重新上传这个文件,问题就解决了