{"id":28386539,"url":"https://github.com/igniteui/apiserver","last_synced_at":"2025-08-18T09:09:53.159Z","repository":{"id":38797510,"uuid":"170102582","full_name":"IgniteUI/apiserver","owner":"IgniteUI","description":"IgniteUI for Angular and APIServer demos","archived":false,"fork":false,"pushed_at":"2024-03-26T10:33:28.000Z","size":3456,"stargazers_count":0,"open_issues_count":34,"forks_count":1,"subscribers_count":38,"default_branch":"master","last_synced_at":"2025-07-06T06:42:16.973Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IgniteUI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-02-11T09:33:55.000Z","updated_at":"2020-04-27T05:38:48.000Z","dependencies_parsed_at":"2025-06-26T15:43:59.657Z","dependency_job_id":null,"html_url":"https://github.com/IgniteUI/apiserver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/IgniteUI/apiserver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgniteUI%2Fapiserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgniteUI%2Fapiserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgniteUI%2Fapiserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgniteUI%2Fapiserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IgniteUI","download_url":"https://codeload.github.com/IgniteUI/apiserver/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgniteUI%2Fapiserver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270968724,"owners_count":24677162,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-30T14:44:13.553Z","updated_at":"2025-08-18T09:09:53.105Z","avatar_url":"https://github.com/IgniteUI.png","language":"TypeScript","readme":"# Ignite / API Server Northwind DEMO\n\nSteps below configure the API SErver, which enables an ODataService used in the sample. IF this service fails for some reason, the app connnects to local data that is inside the demo as JSON.\n\n## Running the Northwind page\n\n1. Northwind database in SQL Server.\nJust run the script to execute the database, the script is [here](https://raw.githubusercontent.com/microsoft/sql-server-samples/master/samples/databases/northwind-pubs/instnwnd.sql)\nOr follow  the 3 steps that are explained [here](https://businessimpactinc.com/blog/install-northwind-database/).\n\n2. Go to the [`API Server/Settings/Connections`](http://localhost:8153/settings.rst#connectionFormTab) and add connection for the Northwind database:\n![alt text](https://i.ibb.co/59ysD40/sql.png)\n\n3. Next go to [`API Server/Settings/Resources`](http://localhost:8153/settings.rst#resourcesFormTab) and add the `Products`, `Orders` and `Order details` tables from the Northwind connection.\n![alt text](https://i.ibb.co/9WrRzgN/Capt2ure.png)\n\n4. Go to [`API Server Settings/User`](http://localhost:8153/settings.rst#userFormTab), and and new user. Copy the auththoken created.\n![alt text](https://i.ibb.co/wzHy16p/Capture.png)\n5. Go to `remoteData.service.ts` file, replace the value of the `auththoken` variable with the value copied in Step 4.\n6. Go to [`API Server Settings/Server`](http://localhost:8153/settings.rst#serverFormTab) and check enable CORS:\n![alt text](https://i.ibb.co/fqvkGV4/Capture2.png)\n7. Go to [`API Server Settings`](http://localhost:8153/settings.rst), click Edit icon on the `northwind_dbo_Orders` resource.\n8. In the dialog opened, find record for `OrderID` and add the following attribute inside the xml element:\n\n'relationships=\"Details(northwind_dbo_Order Details.OrderID)\"'\n\nThis actually defines a relationship between the Order and Order_Details table, which allows the app to get data from the two tables via single http request.\n\n\n9. Run the app\n```\nnpm install\nng serve -o\n```\n\nNOTE:If after selecting a row in the first grid results in erros (this is most probably due to a bug in API server, which seems to return a slightly different structured (only when doing an expand query), do the following:\n\n`populateTimelineChart` in `grid.component.ts`:\n- \"return { 'OrderDate': new Date(rec.OrderDate), 'Quantity': rec.quantity};\" - Capitalize the `quantity`\n`flattenResponseData` method in `grid.component.ts`:\n- capitalize \"details\" and \"productsID\" fields where used, also debug to see if you need to unrap the first value from details, or just take it as a property like Details.ProductID\n\n\n# Ignite / API Server Dynamic Ignite Page\n\nThis is a sample project for building an igxGrid dynamically by querying the metadata from API Server endpoints.\n\n## Installation\n\nUse [npm](https://www.npmjs.com/) to install the package.\n\n```\nnpm install\n```\n\nPlace chinook.db (sample SQLite database) in a local accessible to your API Server instance.\n\n## Connect to chinook.db\n\nIn the API Server admin console, navigate to Settings -\u003e Connections and add a SQLite connection. Set the database connection property to the location of the chinook.db file.\n\n## Authenticate\n\nSet `const authtoken` in */src/app/grid/services/remoteService.ts* to the auth token for an API Server user with access to the SQLite connection.\n\n## Notes\n\nThe */api.rsc/* endpoint and the resource endpoints (e.g. */api.rsc/myResource*) return pure JSON. The *$metadata* endpoint returns OData spec XML, which can be cast as JSON using the *\\@JSON* URL parameter. The metadata is returned in a format like below. The private `updateGrid` method in */src/app/grid/grid-sample-4\\grid-sample-4.component.ts* shows how to drill down into the metadata to parse out the column names and data types and build a JSON object.\n\n```\n{\n  \"items\": [\n    {\n      \"odata:cdatatype\": [\n        \"string\",\n        \"int\",\n        \"int\"\n      ],\n      \"odata:cdescription\": [\n        \"\",\n        \"\",\n        \"\"\n      ],\n      \"odata:cname\": [\n        \"Title\",\n        \"ArtistId\",\n        \"AlbumId\"\n      ],\n      \"odata:csize\": [\n        \"160\",\n        \"19\",\n        \"19\"\n      ],\n      \"odata:iskey\": [\n        \"False\",\n        \"False\",\n        \"True\"\n      ],\n      \"odata:isnullable\": [\n        \"False\",\n        \"False\",\n        \"False\"\n      ],\n      \"odata:kind\": \"EntitySet\",\n      \"odata:methods\": \"get, post, put,merge,patch, delete\",\n      \"odata:relationships\": [\n        \"\",\n        \"\",\n        \"\"\n      ],\n      \"odata:table\": \"albums\",\n      \"odata:type\": \"table\"\n    }\n  ]\n}\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figniteui%2Fapiserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figniteui%2Fapiserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figniteui%2Fapiserver/lists"}