Enter order, Java, Invalid parameter market_id

Added by Christian about 4 years ago

Hej,

Jag har lite problem med att få till enter order i java. Jag har följande kod:

public boolean enterOrder(int accno, Order order)
{
Response response = baseResource.path("accounts").path(String.valueOf(accno)).path("orders").request(responseType).post(Entity.json(order));
//mer kod
}

Jag har jobbat väldigt lite med javax.ws.rs bitarna, så jag har utgått i från att Entity.json(order) omvandlar mitt Order obejct till json format (dokumentationen på metoden säger inte så mycket).

Svaret jag får från testsystemet är: NEXT_INVALID_PARAMETER, Invalid parameter market_id.

Betyder det att testsystemet har tagit emot en korrekt json representation av mitt Order objekt och att värdet i market_id är fel. Eller betyder det att json representation av Order objektet är fel, exempelvis felaktigt namn på market_id?

Tacksom för all hjälp!

/CG


Replies (14)

RE: Enter order, Java, Invalid parameter market_id - Added by Lars about 4 years ago

Skriv ut din json-sträng och posta den (du kan "blanka ut" kontonumret om du vill) så kanske någon har en chans att hjälpa dig.

RE: Enter order, Java, Invalid parameter market_id - Added by Christian about 4 years ago

Jag antar att du menar json strängen av Order objeket. Där har jag problem. Jag vet inte hur man får ut json strängen från Entity.json(order). Har inte hittat nått exempel som hjälper eller någon metod på Entity som gör det jag vill. Och allt detta under förutsättning att Entity.json(order) gör vad jag tror att den gör!

:-/

/Christian

RE: Enter order, Java, Invalid parameter market_id - Added by Christian about 4 years ago

Jag testade att bygga en json träng manuellt, satte accno till mitt accno, för mitt Order objekt, skickade över det och fick INTERNAL SERVER ERROR 500.

String s = "[{\"accno\": " + accno + ",\"order_id\": 0,\"price\": {\"value\": 10,\"currency\": \"sek\"},\"volume\": 1,\"tradable\": {\"identifier\": \"\",\"market_id\": 0},\"open_volume\": 0,\"traded_volume\": 0,\"side\": \"\",\"modified\": 0,\"reference\": \"\",\"activation_condition\": {\"type\": \"\",\"trailing_value\": 0,\"trigger_value\": 0,\"trigger_condition\": \"\"},\"price_condition\": \"\",\"volume_condition\": \"\",\"validity\": {\"type\": \"\",\"valid_until\": 0},\"action_state\": \"\",\"order_type\": \"\",\"order_state\": \"\"}]\n";

Betyder detta att servern kunde ta emot objektet men att det var konstiga värden i? Läste något sådant om att currency inte skulle vara små bokstäver exempelvis. Jag har inte satt alla värden i orden, men det vore bra att kunna konstatera om mitt objekt togs emot av servern (dvs. att json serialliseringen fungerade). Vore bra med fler och mer detaljerade felmedelanden från servern.

RE: Enter order, Java, Invalid parameter market_id - Added by Otto about 4 years ago

Har samma problem, säg gärna till om ni hittar en lösning!

RE: Enter order, Java, Invalid parameter market_id - Added by Otto about 4 years ago

Detta är vad jag skriver i Ruby, och får samma felmeddelande:

request = Net::HTTP::Post.new ("/next/2/accounts/" + accno.to_s + "/orders")
request.add_field('Accept', 'application/json')
request.body = {accno: 9211455, identifier: '101', market_id: 11, price: 75.00, volume: 100, currency: "SEK", side: "BUY", order_type: "NORMAL"}.to_json
request.basic_auth session_key, session_key

response = http.request request # Net::HTTPResponse object
show_account_money_data = JSON.parse(response.body)
puts show_account_money_data

RE: Enter order, Java, Invalid parameter market_id - Added by Otto about 4 years ago

Never mind, jag fick det att fungera.

Problemet är inte att market_id är fel, det är att man måste specificera "Content-Type" (vilket inte står att man måste skicka in i API-dokumentationen).

Detta gjorde att det fungerade för mig:

request = Net::HTTP::Post.new ("/next/2/accounts/" + accno.to_s + "/orders")
request.add_field('Content-Type', 'application/json')
request.body = {identifier: '101', market_id: 11, price: 75.00, volume: 100, currency: "SEK", side: "BUY", order_type: "NORMAL"}.to_json
request.basic_auth session_key, session_key
puts request.body

response = http.request request # Net::HTTPResponse object
show_account_money_data = JSON.parse(response.body)
puts show_account_money_data

RE: Enter order, Java, Invalid parameter market_id - Added by Christian about 4 years ago

Vad jag kan se så är det redan specificerat i mitt fall. Men jag kan ha fel. Om det är någon som är duktig på javax.ws.rs.client och ser vad som är fel, säg gärna till!

Response response = baseResource.path("accounts").path(String.valueOf(accno)).path("orders").request(responseType).post(Entity.json(payload));
<mer kod>
private static final MediaType responseType = MediaType.APPLICATION_JSON_TYPE;

RE: Enter order, Java, Invalid parameter market_id - Added by Christian about 4 years ago

Jag lyckades med att få igenom en order till servern:

String payload = "{\"identifier\": \"101\", \"market_id\": 11, \"price\": 75.00, \"volume\": 100, \"currency\": \"SEK\", \"side\": \"BUY\", \"order_type\": \"NORMAL\"}\n";

Men vad jag inte förstår är hur detta kan gå igenom, eftersom fältet "price" är en komplex typ (Amount) som har två fält "value" och "currency", i alla fall enligt specs. för API:t. Det finns även fler fält i Order som är komplexa, TradableId, ActivationCondition och Validity.

Ett steg i rätt riktning i alla fall...

RE: Enter order, Java, Invalid parameter market_id - Added by Björn about 4 years ago

Jag tror att du tittar på fel ställe i dokumentationen. API spec för REST-resursen "enter order":
https://api.test.nordnet.se/api-docs/index.html#!/accounts/create_order
Jag tycker ditt sista exempel ser helt rätt ut enligt spec.

RE: Enter order, Java, Invalid parameter market_id - Added by Otto about 4 years ago

Nu funkar det inte igen :( Får en empty json body som respons...

RE: Enter order, Java, Invalid parameter market_id - Added by Christian about 4 years ago

Så är det. Jag har tittat på fel ställe i doc's. :-/

RE: Enter order, Java, Invalid parameter market_id - Added by sunh 9 days ago

Hello. I am a passerby. When have you been interested in your 먹튀가디언 I see an article about먹튀검증 I am interested and leave a comment. 꽁머니 I started to be interested in토토사이트 about 안전놀이터 from the time. Your article about "is really interesting. I don't know how you can think about how to relate "and 먹튀검증. I would appreciate if you posted a lot of data about 안전놀이터 in the future. 스포츠중계 And I am also the person who is writing about 꽁머니 . Please pay attention to my 먹튀보안관 My site is called "and the address is https://twiddeo.com/ and https://mtboan.com/ . Thank you.

RE: Enter order, Java, Invalid parameter market_id - Added by sunh 9 days ago

토토레프리 What a nice comment! 먹튀검증 Nice to meet you. I live in 먹튀 a different country 먹튀검증업체 from you. Your writing will be https://elephonemobile.com/ of great help to 먹튀사이트 me and to many other people living in 메이저놀이터 our country. I was looking for a post like this, but I finally found it. 메이저놀이터 Thank you so much for 사설토토 letting me read this. 메이저사설토토 This post touched me a lot. Actually, I'm running a website. 사설놀이터 I'd like to write on my site, 안전놀이터 too, referring to your post. I'm still lacking a lot, but I'm working hard! 안전놀이터 If you're interested, 토토사이트 please visit my site. I'd appreciate it if you could read my article and leave your comments. 메이저토토사이트 Thank you again for leaving me good posts, and I will visit often and read other posts. 토토사이트추천 Be careful of COVID-19, 토토사이트 have a good day!

RE: Enter order, Java, Invalid parameter market_id - Added by sunh 9 days ago

안전놀이터검증및연구센터 That's a very good story! 토토사이트분석전문블로그 I read your article very deeply. 먹튀검증의새로운패러다임 Hello, my name is https://kipu.com.ua/ and I run a site similar to yours. https://remarka.kz/ Compared to you, https://subtitles.ee/ the site I run is not enough. 먹튀검증 However, 안전놀이터 I am also working hard 토토사이트 to upload 먹튀사이트검증 more than 2 posts a week. 메이저토토사이트 If you are interested, 메이저안전놀이터 please visit 안전한사설토토사이트 my website. 공식안전놀이터 I would appreciate it 먹튀검증커뮤니티 if you could visit 먹튀검증토토사이트 and read my article 먹튀검증토토 and leave your comments. 사설안전놀이터] It will be of great help to me. Anyway, have a nice day today and thank you for your hard work.It's really cool 검증토토사이트. I'd like to know more information. Just like your 안전한먹튀검증 I have 최고의안전놀이터 Nowadays,토토사이트검증업체 the weather is getting colder every day토토안전놀이터 , so wear warm clothes and watch out for a cold 확실한먹튀검증

(1-14/14)