Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhancement: Add requestBody as option for customapi widget #2921

Merged
merged 1 commit into from Feb 17, 2024

Conversation

dstotz
Copy link
Contributor

@dstotz dstotz commented Feb 16, 2024

Proposed change

Add new optional requestBody option to customapi widget. This will allow accessing endpoints that might require filtering via request body instead of query params.

This new option will support objects or strings to allow for clean ways to write JSON request bodies or the ability to pass a raw body for non JSON formats.

image

Here is the services configuration I used:

- Custom API:
    - POST No Body:
        widget:
          type: customapi
          url: https://api.mockfly.dev/mocks/febdbed3-d77d-4665-b94f-d12ffb0813a9/test
          method: POST
          headers:
            Content-Type: application/json
            Accept: application/json
          mappings:
            - field: msg
              label: Message
              format: text

    - POST Object Body:
        widget:
          type: customapi
          url: https://api.mockfly.dev/mocks/febdbed3-d77d-4665-b94f-d12ffb0813a9/test
          method: POST
          headers:
            Content-Type: application/json
            Accept: application/json
          requestBody:
            foo: bar
          mappings:
            - field: msg
              label: Message
              format: text

    - POST String Body:
        widget:
          type: customapi
          url: https://api.mockfly.dev/mocks/febdbed3-d77d-4665-b94f-d12ffb0813a9/test
          method: POST
          headers:
            Content-Type: application/json
            Accept: application/json
          requestBody: "{\"foo\": \"bar\"}"
          mappings:
            - field: msg
              label: Message
              format: text

You can use the mock API I set up for testing if you would like: https://api.mockfly.dev/mocks/febdbed3-d77d-4665-b94f-d12ffb0813a9/test

It has a 500 request limit so don't leave it polling for too long or it will stop working. If it receives a POST with a request body containing {"foo":"bar"} it returns {"msg": "I am a POST with a body"}, otherwise it returns {"msg": "I am a POST with no body"}

Closes #2313
Closes #2102

Type of change

  • New service widget
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Documentation only
  • Other (please explain)

Checklist:

  • If applicable, I have added corresponding documentation changes.
  • If applicable, I have reviewed the feature and / or service widget guidelines.
  • I have checked that all code style checks pass using pre-commit hooks and linting checks.
  • If applicable, I have tested my code for new features & regressions on both mobile & desktop devices, using the latest version of major browsers.

@shamoon shamoon enabled auto-merge (squash) February 16, 2024 20:01
@dstotz
Copy link
Contributor Author

dstotz commented Feb 17, 2024

I updated the description as it seems like this change will also resolve #2102 as the only thing missing to use GraphQL API's was the ability to pass the request body with the query. I tested with one of my API's and can confirm it worked as expected.

@shamoon shamoon merged commit c268739 into gethomepage:main Feb 17, 2024
5 checks passed
@shamoon shamoon changed the title Add requestBody as option for customapi widget Enhancement: Add requestBody as option for customapi widget Feb 17, 2024
Plancke pushed a commit to Plancke/homepage that referenced this pull request Feb 23, 2024
Plancke pushed a commit to Plancke/homepage that referenced this pull request Feb 23, 2024
truecharts-admin added a commit to truecharts/charts that referenced this pull request Mar 11, 2024
…0.8.9@869c800 by renovate (#19065)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[ghcr.io/gethomepage/homepage](https://togithub.com/gethomepage/homepage)
| patch | `v0.8.8` -> `v0.8.9` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>gethomepage/homepage (ghcr.io/gethomepage/homepage)</summary>

###
[`v0.8.9`](https://togithub.com/gethomepage/homepage/releases/tag/v0.8.9)

[Compare
Source](https://togithub.com/gethomepage/homepage/compare/v0.8.8...v0.8.9)

#### What's Changed

- Feature: Add list view for custom api by
[@&#8203;sgrtye](https://togithub.com/sgrtye) and
[@&#8203;shamoon](https://togithub.com/shamoon) in
[gethomepage/homepage#2891
- Change: use Script component instead of async script for custom.js by
[@&#8203;Cyberbeni](https://togithub.com/Cyberbeni) in
[gethomepage/homepage#2901
- Change: move custom.css linking to head to avoid FOUC by
[@&#8203;Cyberbeni](https://togithub.com/Cyberbeni) and
[@&#8203;shamoon](https://togithub.com/shamoon) in
[gethomepage/homepage#2916
- Enhancement: Add enablePools option to TrueNAS service widget by
[@&#8203;dstotz](https://togithub.com/dstotz) and
[@&#8203;shamoon](https://togithub.com/shamoon) in
[gethomepage/homepage#2908
- Enhancement: Add requestBody as option for customapi widget by
[@&#8203;dstotz](https://togithub.com/dstotz) in
[gethomepage/homepage#2921
- Enhancement: allow api auth with moonraker service by
[@&#8203;stevendejongnl](https://togithub.com/stevendejongnl) and
[@&#8203;shamoon](https://togithub.com/shamoon) in
[gethomepage/homepage#2934
- Add Plant-it widget by
[@&#8203;MDeLuise](https://togithub.com/MDeLuise) and
[@&#8203;shamoon](https://togithub.com/shamoon) in
[gethomepage/homepage#2941
- Chore(deps): Bump systeminformation from 5.21.24 to 5.22.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[gethomepage/homepage#2999
- Chore(deps-dev): Bump eslint from 8.56.0 to 8.57.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[gethomepage/homepage#3000
- Chore(deps-dev): Bump postcss from 8.4.33 to 8.4.35 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[gethomepage/homepage#3001
- Chore(deps): Bump recharts from 2.11.0 to 2.12.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[gethomepage/homepage#3002
- Fix: support cyrillic characters in quicklaunch by
[@&#8203;shamoon](https://togithub.com/shamoon) in
[gethomepage/homepage#3020
- Fix: docker status labels colors by
[@&#8203;RoboMagus](https://togithub.com/RoboMagus) and
[@&#8203;shamoon](https://togithub.com/shamoon) in
[gethomepage/homepage#3028
- Enhancement: Add formatting options to weather widgets by
[@&#8203;benphelps](https://togithub.com/benphelps) in
[gethomepage/homepage#3093
- Feature: Add Homebox widget by
[@&#8203;cadeluca](https://togithub.com/cadeluca) in
[gethomepage/homepage#3095

#### New Contributors

- [@&#8203;Cyberbeni](https://togithub.com/Cyberbeni) made their first
contribution in
[gethomepage/homepage#2901
- [@&#8203;dstotz](https://togithub.com/dstotz) made their first
contribution in
[gethomepage/homepage#2908
- [@&#8203;stevendejongnl](https://togithub.com/stevendejongnl) made
their first contribution in
[gethomepage/homepage#2934
- [@&#8203;MDeLuise](https://togithub.com/MDeLuise) made their first
contribution in
[gethomepage/homepage#2941
- [@&#8203;cadeluca](https://togithub.com/cadeluca) made their first
contribution in
[gethomepage/homepage#3095

**Full Changelog**:
gethomepage/homepage@v0.8.8...v0.8.9

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 10pm on monday" in timezone
Europe/Amsterdam, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzUuMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
Copy link
Contributor

This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new discussion for related concerns. See our contributing guidelines for more details.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 19, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants