esi / esi-issues

Issue tracking and feature requests for ESI
https://esi.evetech.net/
208 stars 23 forks source link

Public Contract endpoint #61

Closed fuzzysteve closed 6 years ago

fuzzysteve commented 7 years ago

Contract endpoint, displaying all contracts, of all types, which are public

Possibly with some kind of limiter. pagination will be a must.

I'm thinking a list view (ids only), and then a individual details view

wtfrank commented 7 years ago

This would be great because I can imagine third parties implementing all kinds of augmented search functionalities that are not available in game.

1) courier contracts: ability to filter out highsec islands, or search by reward / jump (instead of just reward)

2) item contracts: a more "market-like" interface to searching for researched bps and other items

NathenSample commented 7 years ago

Limiter - Certainly. Pagination - Certainly. Response with the ID - Yep.

However could we add to that so the response also includes the ESI url to call to get the details i.e

{ id:123 esiUrl:"Mock": }

fuzzysteve commented 7 years ago

ideal world, as I see it:

You can get a list of all contracts that you can see.

You can get a list of personal/corp/alliance only contracts (filter parameter?)

Ligraph commented 7 years ago

I assume you mean contracts made to you, your corp, or your alliance? That would be extremely nice.

fuzzysteve commented 7 years ago

My preference is also to have public contracts on the endpoint.

So you can restrict to you, yourself, your alliance, or get everything

Ligraph commented 7 years ago

Yeah, I meant to include that...

aydjay commented 7 years ago

+1 I would like to query the ships that are stocked in my alliance staging citadel.

I don't see this as needing a director level api - any toon in the alliance should be able to query this just as we can ingame.

markus-lassfolk commented 7 years ago

Agreed. And be able to search for public contracts containing BPCPacks and include that in manufacturing costs.

Zyles commented 7 years ago

At least let us get contracts on our character/corp.

ETristram commented 6 years ago

Character and corporate contracts are now available via ESI, however currently no endpoint for "general" public contracts.

Any news on this? Is there a game design decision open?

ccp-zoetrope commented 6 years ago

Sending this through the game design ringer.

ccp-zoetrope commented 6 years ago

Approved by game design.

deadlybulb commented 6 years ago

Awesome sauce. Best news of the day (so far).

fuzzysteve commented 6 years ago

hmm. you might want to have a little more information on the initial listing than just the ID. like the type, or maybe the region. Or the end date. It's not vital, but it's potentially of use. Might cut down on how much people request.

Aidansavage commented 6 years ago

Depending on how you can access the contract stuff through ESI, and how the cache behavior would end up being, it would be great to have more control over filtering through the api.

https://esi.tech.ccp.is/latest/contracts/public/{region}/?datasource=tranquility&contract_type=auction&item_type=1,2,3,etc ^Potential example?

ghost commented 6 years ago

If this becomes a thing, could we please get a endpoint that allows us to open the contract in the game client?

Dusty-Meg commented 6 years ago

That is already in https://esi.tech.ccp.is/ui/#/User_Interface/post_ui_openwindow_contract

ghost commented 6 years ago

Seems i missed that one, thanks 👍

querns commented 6 years ago

Another thing that would be handy to have, with the advent of the Abyssal modules and their unique item information, is the ability for a structure owner to dump all contracts currently posted in a structure. Something like:

https://esi.tech.ccp.is/latest/structures/{structureID}/contracts/?datasource=tranquility&page=1

The intended purpose of this would be to allow a structure owner to collect and disseminate a list of available Abyssal modules (and other things, like rigged ships) via a third-party site. This is essential for smooth trade of Abyssal modules, since their randomly-augmented item attributes will, in all likelihood, require trade via the contracts system.

The endpoint would need to be limited in scope, of course -- private contracts would be mostly noise. Perhaps public, alliance- and corporation-scoped contracts?

OrthoLoess commented 6 years ago

I agree with Steve that a little more info on the main list of IDs would help avoid a hell of a lot of unnecessary requests. Simple things like the type of contract, maybe location or region. whatever isn't too costly to build up I suppose.

NathenSample commented 6 years ago

Contract Type Region ID (I feel like specific location is likely overkill, but may not be much more overhead to build in) Would all be incredibly useful stats to avoid needlessly sifting through a multiple calls only to realise you have zero interest in the contract.

My initial thoughts also included Time Created Expiry Time But quickly realised they were actually of no help to a use case I could think of.

sei15 commented 6 years ago

Any updates on this?

graywolf commented 6 years ago

Any update on this? I would like to build custom contract search tool for myself but without way to list all contracts it's not possible .·'¯'(>▂<)'¯'·.

a-tal commented 6 years ago

released under /contracts/public/...

evrial commented 6 years ago

Took just less than 2 years, nice!

ddavaham commented 6 years ago

Nto cool bro.

First off, this request was made right after ESI was announced. Idea were flooding in and this one stuck. However, the priority from the get go was parity with Crest and Xml. This was just achieve earlier this year.

Secondly, this is functionality that literally has no reference point. Meaning they had to design these endpoints from the ground up, unlike a majority of the parity work where they had something to reference in the form of XML and Crest.

In reality, it really only took 3 months of work. Loose guesstimation. Maybe but def not two years. So step back a little bit, be glad that you have it and say thank you instead of being an asshole.

evrial commented 6 years ago

I totally didn't want to trigger someone but it's all good. As long as progress moving forward is alright, we aren't customers here in the end.