# gedu-api-service

> ajax跨域服务对象

Latest version **1.0.0** (published 2018-10-24) · ISC license · 0 weekly downloads

## Install

```sh
npm install gedu-api-service
pnpm add gedu-api-service
yarn add gedu-api-service
bun add gedu-api-service
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2018-10-24 |
| First published | 2018-10-24 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 46.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | bh92182 |
| Maintainers | bh92182 |

## Links

- npm: https://www.npmjs.com/package/gedu-api-service
- npm.io page: https://npm.io/package/gedu-api-service

## Dependencies (1)

- [jquery](https://npm.io/package/jquery.md) ^3.3.1

## Recent versions

- 1.0.0 (latest) — 2018-10-24

## README

## Api服务对象 － Server

npm run build

#### namespace: window.gEdu
#### version:   1.0.0

```javascript
var server = new window.gEdu.Server([$debug,] [$serverType]);
```

    @param: [$debug]{boolean} 用于切换API地址;
    
API地址存储在EduConfig.server.project对象中，

project对象包含项目名称属性。通过名称访问项目域名属性；

```javascript
project: {
    //主项目
    master: {
        domain: "http://api.edu24ol.com",
        testDomain: ""
    }
｝
```
testDomain实际不存在，如果需要可以在实例化Server对象前自定义

```javascript
EduConfig.server.project.master.testDomain = 'http://apitest.edu24ol.com';
```
    @param: [$serverType] {String} 服务类型，默认：'normal'; 可选：'mvc'
    
如果你的服务是mvc架构，通过route来分配url,可以指定这个参数为“mvc”;



##Server提供的函数

#### 1、server.getAsy(url, [data])
#### 2、server.postAsy(url, data)
#### 3、server.putAsy(url, data)
#### 4、server.delAsy(url, [data])


跨域请求


    @param: url {String}：请求地址
    @param: data {Object}：post & put 必选，提交数据键值对
    @returns {object} $Deferred.Promise


```javascript
function demo() {
    var loginPromise = server.postAsy(url, postData);
    loginPromise.done(function (result) {
        // 正确回调
    });
    loginPromise.fail(function (error) {
        // 请求异常处理
    });
};
```

#### 嵌套和依赖：按序执行

```javascript
// 第一次异步请求
loginPromise = server.postAsy(url, postData);

// pipe的意思是在说：请针对这个 Promise 对象给我一个回调，我会归还一个 Promise对象以表示回调运行的结果；
exitPromise = loginPromise.pipe(function (result) {
    // 第二次异步请求
    return server.getAsy(url);
});

exitPromise.done(function (result) {
    // 正确回调
});

exitPromise.fail(function (e) {
    // 请求异常处理
});
```

#### 嵌套和依赖：合并执行

```javascript
loginPromise = server.postAsy(login, postData);

userInfoPromise = loginPromise.pipe(function (data) {
    // 合并两个异步请求
    return $.when(server.getAsy(url1), server.getAsy(url2));
});

//当两个请求全部正确返回后
userInfoPromise.done(function (n, m) {
    console.info(n[0]);// result1
    console.info(m[0]);// result2
    //正常处理
});
```

#### 5、server.createFullUrl(projectName, interfaceName, data)

创建完整的API地址

    @param: projectName   {String}：项目名称
    @param: interfaceName {String}：接口路径
    @param: data          {Object}：请求参数（get, delete）    
    @returns {String}

```javascript
var server = new window.gEdu.Server('mvc'),
    server2 = new window.gEdu.Server(),
    url;

url = server.createFullUrl('master', 'User', {name: '888wj', pwd: '1111'});

console.log(url); // http://api.edu24ol.com/User888wj/1111


url = server2.createFullUrl('master', 'User', {name: '888wj', pwd: '1111'});

console.log(url); // http://api.edu24ol.com/User?name=888wj&pwd=1111
```

---
_Source: https://npm.io/package/gedu-api-service · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
