はじめに

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には次のような特徴があります。

  1. URIを使ってデータを読み書きする
  2. 言語に依存せずに利用できる
  3. 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を構成するもの的更多相关文章

  1. iOSシステム構成の纏め

    iOSのアーキテクチャ a)       iOSのアーキテクチャは階層化されている最上位レベルでは.iOSはそれが稼働しているハードウェアとアプリケーションの間の仲介役を果たします.アプリケーションが ...

  2. JSP基本_JSPの構成要素、アクション、ディレクティブ

    1.JSPの構成要素[コア要素] JSP文法のコアとなる要素で.サーブレットソースに変換される. ・宣言: <%! - %> (宣言で指定した変数は.Javaの「フィールド変数」になる.ス ...

  3. 【SAPUI5】ODataとは

    はじめに SAPUI5でアプリケーションを作るにあたり.ODataは避けては通れないトピックです.結構広いテーマなので.5-7回くらいに分けて書きたいと思います.1回目はODataの概要について説明し ...

  4. ASP.NET MVC + MySQL で開発環境構築

    from:http://qiita.com/midori44/items/ef7cdd1d37c353e44b5f ASP.NET MVC & EntityFramework によるコードファ ...

  5. Buildroot構建指南--Overview【转】

    本文转载自:http://www.unixlinux.online/unixlinux/linuxjc/gylinux/201703/65218.html Buildroot構建指南--Overvie ...

  6. 測試大型資料表的 Horizontal Partitioning 水平切割

    FileGroup 檔案群組 :一個「資料庫(database)」可對應一或多個 FileGroup,一個 FileGroup 可由一或多個 file (.ndf) 構成. FileGroup 可讓 ...

  7. 【转】bind - DNS 設定

    http://www.l-penguin.idv.tw/article/dns.htm 參考資訊 DNS 是所有伺服之母,電腦連節時均以 IP 為主,比方說輸入 202.43.195.52 就會到台灣 ...

  8. 第一次将内容添加到azure event hubs

    由于每秒数据吞吐量巨大,需要将实时数据存到event hubs,再由event hubs定时定量保存到document DB. event hubs的介绍详见微软官页:https://azure.mi ...

  9. PGA

    Server Process PGA   1.PGA作用   2.PGA構成      1)private sql area      2)session memory          3)sql ...

随机推荐

  1. WAKE-LINUX-SOFT-linux安装,配置,基础

    1,ubuntu 1,1下载,安装 中文ubuntu站,http://cn.ubuntu.com/ 下载地址:https://www.ubuntu.com/download 安装手册:https:// ...

  2. python常用模块(二)

    1.ConfigParser模块 用于生成和修改配置文档,在python3.x中变更为configparser 1 [DEFAULT] 2 ServerAliveInterval = 45 3 Com ...

  3. Oracle彻底杀掉进程

    kill session 是DBA经常碰到的事情之一.如果kill 掉了不该kill 的session,则具有破坏性,因此尽可能的避免这样的错误发生.同时也应当注意,如果kill 的session属于 ...

  4. Orchard Core 中文文档翻译(一)关于Orchard Core

    原文连接:https://www.cnblogs.com/Qbit/p/9746363.html 转载请注明出处 翻译说明:本系列为直译,按照官方的计划现在这个版本(2018年10月5日)已经接近最终 ...

  5. 泛型约束-swift

    1.泛型定义本体有参量类型约束: 2.泛型扩展对参量类型约束: 3.函数参量约束: 泛型类型的访问控制: 1.与类型无关的通用函数,泛型的任何实例都可以访问: 2.与类型有关的函数(通过扩展约束实现) ...

  6. Object c的NSString的使用,创建,拼接和分隔,子string,substring

    main: // //  main.m //  StringDemo // //  Created by 千 on 16/9/22. //  Copyright © 2016年 kodulf. All ...

  7. POJ 3621 Sightseeing Cows 【01分数规划+spfa判正环】

    题目链接:http://poj.org/problem?id=3621 Sightseeing Cows Time Limit: 1000MS   Memory Limit: 65536K Total ...

  8. PHP设计模式——工厂模式

    <?php /** * 工厂模式 * 提供获取某个对象的新实例的一个接口,同时使调用代码避免确定实际实例化基类的步骤. * * 工厂类用于创建不同类的实例,并将其返回. */ /** * 服务端 ...

  9. Python的基本库与第三方库

    一:Python 模块,包,库的概念理解: 1.python模块是: python模块:包含并且有组织的代码片段为模块. 表现形式为:写的代码保存为文件.这个文件就是一个模块.sample.py 其中 ...

  10. 使用 get post 注意事项

    快速判断: 如下情况使用GET方法:客户端与服务端的交互像是一个提问(如查询操作.搜索操作.读操作) 如下情况使用POST方法:        1.交互是一个命令或订单(order),比提问包含更多信 ...