Mendapatkan RC 500 menggunakan objectFilter di bidang pengguna openIdConnectUserName

Saya mencoba mengambil profil pengguna dengan openIdConnectUserName.

URL-nya adalah:

https://api.softlayer.com/rest/v3/SoftLayer_Account/getUsers.json?objectMask=mask[virtualGuestCount,virtualGuests.id,virtualGuests.hostname,virtualGuests.status,hardwareCount,hardware.id,hardware.hostname,hardware.hardwareStatus,userStatus,apiAuthenticationKeyCount,apiAuthenticationKeys,loginAttemptCount,successfulLoginCount,unsuccessfulLoginCount]&objectFilter={"users":{"openIdConnectUserName":{"operation":"[email protected]"}}}

Saya mendapatkan RC 500 dengan pesan "Internal Server Error"

Apakah ini bidang objectFilter yang valid?


person Gary Sutherland    schedule 04.01.2018    source sumber


Jawaban (2)


Coba kueri tanpa objectFilter. Jika berhasil, Anda akan mengetahui bahwa itu adalah objectFilter yang tidak valid.

Mungkin juga Anda menanyakan terlalu banyak data. Jika hasil kueri terlalu besar, dapat menghasilkan kesalahan 500. Anda dapat mencoba parameter batas/offset. Ini sepertinya tidak mungkin terjadi karena Anda memfilter alamat email tertentu.

person aarmor    schedule 04.01.2018
comment
Saya menggunakan permintaan http yang ditentukan tanpa batas. Jumlah profil pengguna yang dikembalikan adalah 708. Menurut saya, objectFilter tidak berfungsi dengan benar. :-) - person Gary Sutherland; 05.01.2018

MEMPERBARUI

Kesalahan yang Anda dapatkan mungkin karena responsnya terlalu besar, oleh karena itu Anda harus menggunakan batas hasil (lihat tautan di bawah).

Namun masalah utamanya adalah karena filter objek tidak berfungsi dengan baik, alasannya mungkin karena tipe data utama yang berisi properti openIdConnectUserName tidak memiliki properti relasional, lihat di bawah untuk penjelasan singkat ketika masalah seperti ini terjadi:

"Sayangnya, Memfilter MetricDataTypes tidak dapat dilakukan, karena tipe data ini: SoftLayer_Container_Metric_Data_Type tidak memiliki properti relasi apa pun ..."- SoftLayer API cara memfilter MetricDataTypes

Sebagai solusinya, saya akan merekomendasikan untuk menggunakan properti lain seperti "email" dengan "managedByOpenIdConnectFlag" (yang sebagai "benar" menentukan apakah pengguna portal ini dikelola oleh federasi IBMid, dan email harus sama dengan openIdConnectUserName) ditambahkan ke topeng objek dan lalu gunakan dengan filter objek.

Atau Anda dapat menggunakan bahasa pemrograman untuk memfilter berdasarkan properti spesifik yang Anda perlukan (openIdConnectUserName) sesuai rekomendasi yang disediakan forum.

P.D.: Saya perhatikan bahwa permintaan yang Anda berikan tidak memiliki properti "openIdConnectUserName" di dalam topeng objek misalnya, oleh karena itu responsnya tidak akan memberikan properti ini meskipun properti itu didefinisikan dengan benar di filter, saat menggunakan filter objek itu adalah mengharuskan properti yang diperlukan dalam respons, harus dideklarasikan dalam topeng objek sebelumnya.

Untuk informasi lebih lanjut silakan lihat di bawah ini:

http://sldn.softlayer.com/blog/phil/how-solve-error-fetching-http-headers

https://sldn.softlayer.com/article/using-result-limits-softlayer-api

person Fernando Iquiza    schedule 04.01.2018