Hello,
I'm trying to implement a search field where I can find issues by its description or project key, the issue key or a combination of them.
But I'm not really satisfied with the rest api at all...
So here are some example use cases:
- "test": Get all issues with "test" in its description or comment or whatever
- "PRO" Get all issues of project "PRO"
- "PRO-1": Get all issues with "PRO-1" in its key ("PRO-1", "PRO-11", "PRO-12", "PRO-124" ...)
- "PRO test": Combination of 1 and 2
- "PRO-1 test": Combination of 1 and 3.
I started to use the issue picker api with more or less success.
- `api/3/issue/picker?query=test` ✅
- `api/3/issue/picker?query=PRO` ✅
- `api/3/issue/picker?query=PRO-1` ✅
- `api/3/issue/picker?query=PRO test` ❌
- `api/3/issue/picker?query=PRO-1 test` ❌
Okay, no luck with 4. and 5. So I included `currentJQL`.
4. `api/3/issue/picker?query=test¤tJQL=Project=PRO` ✅
5. `api/3/issue/picker?query=test¤tJQL=Key~PRO-1` ❌
Well, 4 is working now, but 5. isn't, because I can't use `~` in JQL.
It is so weired that I can search by the key if I don't include anything else but can't if I'm searching for other words.
Another thing: If I want to include all issues (not only issues where I participated anyhow), I have to use an empty `currentJQL` parameter, so the "current search" will return something.
The `api/3/search` enpoint doesn't fit the requirements as well. Can't search with wildcards...
I'm thinking about to exclude some possibilities, so the user could only search
- All issues by its descriptions
- All issues by its keys (with wildcard, but without an additional query)
- All issues by its descriptions and the EXACT project key
But the user experience will suffer, cause refinements of the search input wouldn't be straight forward and not really understandable.
The last option would be: Query all issues of all projects, save them somewhere and use my own search engine.
By the way: Some ids or keys are integers others are strings?!
And why doesn't return the api a 401 if I'm not logged in / the api key is missing? It returns 200 with an empty result?!
Actually my question could be: How to solve the problem. But maybe its not a question anymore - its more a thread about frustration...
Cheers,
Daniel