harbor/src/portal/server
Shijun Sun cf5197246a
Fix message processing issue (#17609)
Signed-off-by: AllForNothing <sshijun@vmware.com>

Signed-off-by: AllForNothing <sshijun@vmware.com>
2022-09-29 11:12:11 +08:00
..
controllers Simplify proxy config (#17548) 2022-09-22 11:40:04 +08:00
src Fix message processing issue (#17609) 2022-09-29 11:12:11 +08:00
README.md Simplify proxy config (#17548) 2022-09-22 11:40:04 +08:00
tsconfig.json Add express module 2020-01-10 16:21:16 +08:00

README.md

Mocked Api-server based on "Node.js" + "Express" + "Typescript"

How to use?

suppose you want to mock a api server for below code:

     getScannersByName(name: string): Observable<Scanner[]> {
        name = encodeURIComponent(name);
        return this.http.get(`/api/scanners?ex_name=${name}`)
                .pipe(catchError(error => observableThrowError(error)))
                .pipe(map(response => response as Scanner[]));
    }
  1. Edit mock-api.ts, and add below code:
   mockApi.get('/api/v2.0/scanners', Controllers.getScanner);
  1. Add your method implementation into folder "controllers" and export it:
    export function getScanner(req: Request, res: Response) {
      const scanners: Scanner[] =  [new Scanner(), new Scanner()];
      res.json(scanners);
    }

3.cd portal and run

  npm run mock-api-server

4.Edit the file proxy.config.json, and add a proxy object at the top as below:

[
// redirect requests to the mocked api server
{
 "context": [
   "/api/v2.0/scanners"
 ],
 "target": "http://localhost:3000",
 "secure": false,
 "changeOrigin": true,
 "logLevel": "debug"
},
  
// redirect requests to the back-end server
{
 "context": [
   "/api",
   "/c",
   "/i18n",
   "/chartrepo",
   "/LICENSE",
   "/swagger.json",
   "/swagger2.json",
   "/devcenter-api-2.0",
   "/swagger-ui.bundle.js"
 ],
 "target": "https://hostname",
 "secure": false,
 "changeOrigin": true,
 "logLevel": "debug"
}
]
  1. Run npm run start, then all the mocked APIs will be redirected to the mocked server