VUE - 调用ODATA接口

VUE - 调用ODATA接口

 

o.js源码:https://github.com/janhommes/o.js ,用法可以在里面找

1. 安装插件

cnpm install odata --save-dev

yarn add odata --save-dev

 

 

2. 新建一个接口调用的js文件

 

引入 odata

import {  o } from 'odata';

定义 域名地址

const baseURL = `http://192.168.1.100:8088/odata/`;

 

 Get 方法 

复制代码
export async function api_getOpeList(parameter) {
  let response = await o(`${baseURL}`).get('方法名').query(parameter);
  return response;
}

parameter样例参数如下
 let parameter = {
            $filter: `Id eq 3`,
            $expand: 'nodes($select=Id,Name,ParentId)',//连接nodes
            $select: `Id,nodes`,
          };
 
复制代码

 

 Post 方法 

复制代码
export async function api_postOpeList(parameter) {
  let response = await o(`${baseURL}`).post('方法名',parameter).query();
  return response;
}

parameter样例参数如下
let
parameter={
Id:3,
Name:'张三',
Age:45
}

复制代码

 

Patch 方法 

复制代码
//参数具体跟据后端方法
export async function api_patchData(key, parameter) { let response = await o(`${baseURL}`).patch(`方法名(主键参数值)`, parameter).query(); return response; }


parameter样例参数如下
let parameter={
Id:3,
Name:'张三',
Age:45
}
 
复制代码

 

 Batch 方法(批量操作)

复制代码
export async function api_postBatchData() {
  let response = await o(`https://localhost:5001/odata/`)
    .get('books')
    .get('dtoo')
    .post('books', { icc: 11112 , name: 'zhangsan' } )
    .batch();
  return response;
}

复制代码

 

 POSTMAN

复制代码
https://localhost:5001/odata/$batch

{
"requests": [ { "id": "aa", "method": "POST", "headers": { "content-type": "application/json; odata.metadata=minimal; odata.streaming=true; charset=utf-8" }, "body": { "icc": 122, "name": "zhangsan" }, "url": "https://localhost:5001/odata/Books" }, { "id": "sldfk", "method": "GET", "url": "https://localhost:5001/odata/dtoo" }, { "id": "sdfww", "method": "GET", "url": "https://localhost:5001/odata/Books" } ] }
复制代码

 

 

$filter 过滤条件总结

1.  contains 包含

  模糊查询:name 中包含 Default 字样

    $filter = contains(Name,'Default')

 

 

 

2.  not contails 不包含

  模糊查询:name 中不包含 Defaut字样

    $filter = not contains(Name,'Default')

 

 

3. startswith 以xx开头

    $filter = startswith(Name,'Default')

 

  

4. endswith 以xx结尾

    $filter = endswith(Name,'Default')

 

 

5. length 字符串长度等于X

    $filter = LENGTH(Name) eq 7

 

 

6. indexof 索引为n 开始 包含XX 字符

  Name从第八个字母开始包含Default的所有信息

    $filter = indexof(Name,'Default') eq 7

 

7. replace 替换

  Name 等于 mumu 的信息中m被 u 替换 

    $filter = replace(Name,'m','u') eq 'mumu'

 

 

 

8. substring 从第n个字符开始

   Name从第二个字符开始是 mumu的所有信息

    $filter = substring(Name,1) eq 'mumu'

   

   Name的第二个和第三个字符是 mu的所有信息

    $filter = substring(Name,1,2) eq 'mu'

 

 

 

9. tolower 转换为小写

  Name等于Mu的字符都转换为小写

    $filter = tolower(Name) eq 'Mu'

   

 

10. toupper转换为大写

  Name等于Mu的字符都转换为大写

    $filter = toupper(Name) eq 'Mu'

   

 

 

11. trim 去除空格后

  Name去掉空格后依旧等于 mu 的所有信息

    $filter = length(trim(Name)) eq length(mu)

   

 12. 比较运算符

     
eq 等于 $filter = Name eq 'Candice' ==
ne 不等于 $filter = Name ne 'Candice' !=
gt 大于 $filter = Age gt 18 >
ge 大于等于 $filter = Age ge 18 >=
lt 小于 $filter = Age lt 18 <
le 小于等于 $filter = Age le 18 <=
and  $filter = Name eq 'candice' and age le 18 &&
or  $filter = Name eq 'candice' or age le 18 ||
() 分组 $filter = (Name eq 'candice' and age le 18) or (Name eq 'candy' and age gt 18) ()

 

 

  

 

 

 

 

 

 

 

 

$orderby

$top

$skip

$inlinecount

$select

 

 

 

 

 

 

 

 

 

 

 

 

引用:https://www.cnblogs.com/smileberry/p/6929646.html

 引用:https://wenku.baidu.com/view/0958faa087868762caaedd3383c4bb4cf7ecb71b.html

引用:https://www.npmjs.com/package/odata

引用:https://github.com/janhommes/o.js

posted @   无心々菜  阅读(795)  评论(1编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示