code: def test_update_app_api(self):
      list_response = self.client.get("/api/apps/")
      app_id = list_response.json()[0]["id"]
      response = self.client.put(
          f"/api/apps/{app_id}/",
          json={"type": "params_explorer", "state": {"foo": "bar"}},
      )
      self.assertEqual(response.status_code, 200)
      get_response = self.client.get(f"/api/apps/{app_id}/")
      data = get_response.json()
      self.assertEqual("params_explorer", data["type"])
      self.assertEqual("bar", data["state"]["foo"])
  
file_path: aim/tests/api/test_dashboards_api.py
imports: from tests.base import PrefilledDataApiTestBase
label_desc: Use image node_id 4 for calling the TestDashboardAppsApi obj's underlying member method code with example usage: obj.test_update_app_api() without return types