{"id":21161349,"url":"https://github.com/apinf/developer","last_synced_at":"2026-01-02T12:03:36.526Z","repository":{"id":87590746,"uuid":"108997896","full_name":"apinf/developer","owner":"apinf","description":"Developer pages for APInf Platform development","archived":false,"fork":false,"pushed_at":"2017-11-28T07:44:12.000Z","size":211,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-21T09:28:05.409Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://apinf.org/developer/","language":null,"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/apinf.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}},"created_at":"2017-10-31T13:15:38.000Z","updated_at":"2017-10-31T17:07:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"b2f0fbab-fb14-472d-8341-bce3e782d7cb","html_url":"https://github.com/apinf/developer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apinf%2Fdeveloper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apinf%2Fdeveloper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apinf%2Fdeveloper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apinf%2Fdeveloper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apinf","download_url":"https://codeload.github.com/apinf/developer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243606954,"owners_count":20318314,"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","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":"2024-11-20T13:13:05.693Z","updated_at":"2026-01-02T12:03:31.487Z","avatar_url":"https://github.com/apinf.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"## For whom is this?\n\nFrom this site you'll find detailed information about our platform development practices. This is not APInf Platform user guide. \n\n**Intended audience is people who develop the platform regardless of are they employees of APInf Oy or community members.**\n\n\u003chr/\u003e\n\n## What is APInf Platform? \n\nAPInf platform offers a comprehensive, yet easy to use API management tool. APInf provides simplified workflow for API owners for common API management tasks so you can focus on building your APIs.\n\n![APInf Platform overview](https://raw.githubusercontent.com/apinf/developer/master/apinf-overview.png)\n\nYou can publish your API in the APInf catalog without connecting it to a proxy. But connecting the API provides you with the possibility to use traffic management features, authorization and logging. The proxy acts as a façade for your API: the API clients are not accessing your API directly.​ You can manage both REST APIs and Iot APIs (MQTT) with APInf.\n\nPublishing your API in the catalog gives better visibility for your API. The API can be published with one single step: fill in the access URL, name and description and get going! We highly recommend also adding a logo for your API – after all the API should be an easily identifiable product.\n\nYou can provide an OpenAPI documentation file for your API by uploading a file or providing a link to your file. Good API documentation saves frustration from developers and minimizes support needs from them. They can not only read the document, they can try out the calls in practice.\n\nIf you connect your API to the proxy, you can follow your API traffic and different API KPIs in the dashboard. You can monitor API response times, HTTP response types, numbers of users and most frequent users for the selected time frames. This allows you to identify for example your most popular APIs, traffic peaks or performance problems.\n\n\u003chr/\u003e\n\n## PLATFORM DEVELOPMENT\n\n### Understand what you are dealing with\n\n- [System model](https://raw.githubusercontent.com/apinf/docs/master/docs/develop/Architecture/Apinf-systemModel.png)\n- [Permission model](https://raw.githubusercontent.com/apinf/docs/master/docs/develop/Architecture/Apinf-permissionsModel.png)\n- [APINf roles](https://github.com/apinf/docs/blob/master/docs/develop/Architecture/User-Roles-in-Apinf.md)\n- [Codebase](https://github.com/apinf/platform)\n\n### Roadmap\n\nAPInf roadmap is decided inside the team. Decisions are business driven, but take into account technical requirements and limitations. Our roadmap is \"event driven\" which means that we pick bigger ICT events as milestones.   \n\n- [Roadmap for development](https://waffle.io/apinf/roadmap)\n\n### Licensing policy\n\nWe use EUPL license for core components. \n\n### Contribution process\n\n### Contributor License Agreement\n\n### Issues\n\nEasiest way to follow development is to look at issues in Waffle. Other option is to use Github issues list. \n- [APInf Platform in Waffle.io](https://waffle.io/apinf/platform)\n- [APInf Platform issues in Github](https://github.com/apinf/platform/issues)\n\nFor new issues we have template in Github which will guide you to fill in needed information. \n\n### Automated testing\n\nWe use automated testing. This means that you **start developing new features by defining test first**. \nPlatform APIs have own testing process. See below. \n\n### Set up local development version \nStart developing the platform by installing APInf platform. You can do this multiple ways. [Here's more detailed information](https://github.com/apinf/platform/blob/develop/INSTALL.md) how to do it. \n\n### Platform branches\nWe have three instances running. Each of them have different purpose. \n\n- **Our production enviroment** is available at [apinf.io](https://apinf.io) This is our SaaS version\n- **Staging**, [https://staging.apinf.io](https://staging.apinf.io) is for maturing the next version before launch to production (see above)\n- **Nightly**, [https://nightly.apinf.io](https://nightly.apinf.io) is our nightly build version of the platform. \n\n\u003chr/\u003e\n\n## PLATFORM API DEVELOPMENT\n\nOur platform contains multiple APIs. What ever can be done from GUI, you can do it with API. For each platform API we have two branches:\n- production (with multiple versions) and\n- design (the future version)\n\nProduction API is the live one and fully functional version. The design has been frozen. It might change, but changes are not backwards breaking. Design branch is the next API version (minor/major changes). \n\n### Process in a nutshell\n\n![API development process](https://raw.githubusercontent.com/apinf/developer/master/apinf-api-process.png)\n\nRead API Design Guide for details. \n\n### Testing practices. \n\n- We utilize Postman in platform API testing. \n- All tests generated by Postman. \n- Tests released in platform github repository under ....\n\nDetailed information about testing practices and tools in [API testing documentation](https://github.com/apinf/developer/blob/master/api-testing.md).\n\n### Currently we have following APIs \n- **Catalog API** ([Production version 1](https://apinf.io/apis/apinf-catalog-rest-api-1) and [Development branch](https://apinf.io/apis/apinf-catalog-rest-api-design))\n- **Management API** ([Production version 1](https://apinf.io/apis/apinf-management-rest-api))\n- **Analytics API** (Development branch)\n\nIn APInf we use unified process for Platform API development. Platform APIs are non-profit APIs. Our intention is not to charge clients for using them. They are part of the platform.\n\nWe use [OpenAPI spec version 2.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md) in API design and documentation. \n\nCode related to [APIs can be found from here](https://github.com/apinf/platform/tree/develop/apinf_packages/apis)\n\n### API Design Guide\nWe have defined set of rules for API development. \n- [Read API Design Guide first.](https://apinf.gitbooks.io/api-guidelines/content/)\n- [Overall process is good to understand](https://apinf.gitbooks.io/api-guidelines/content/process.html)\n\n\u003chr/\u003e\n\n## UX DEVELOPMENT\n\n### UX Design Guide\n\n- [UX Design Guide]() \n\n\u003chr/\u003e\n\n## APIBOT DEVELOPMENT\nWhat is APIBot? \n\n\n### Codebase\n\n### Released version\n\n\u003chr/\u003e\n\n## OPEN API DESIGNER DEVELOPMENT\nWhat is Open API Designer\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapinf%2Fdeveloper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapinf%2Fdeveloper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapinf%2Fdeveloper/lists"}