kintone API SDK(β) for Java

cybozu发表于:2016年12月09日 16:39:28更新于:2020年09月09日 13:58:40

新的 kintone Java Client 库公开了!!

关于SDK(β)

注意事项

  • SDK(β),不能保证运行结果。 

  • 关于代码的更改、再发布以及商业用途,请遵照相应的使用许可协议。

kintone API SDK(β) for Java

为了让服务器端能方便的调用API,准备了各种各样的功能。

运行环境

Java SE 8以上

SDK

License

Apache License 2.0

Sample

更新履歴

  • 2016/4/4 v0.8 回复API, record/status.json的对应,添加更新特定key的功能

  • 2017/8/28 v0.8.1 bug改修

  • 2018/1/10 v0.8.2 jar包里包含gson库的改修,修正了user agent名



回复(2)

  • cybozu

    java的sdk是外部的开发者自行开发并且维护,而且他们的sdk,应该是已经换了新的,请参考。如果有啥问题,可以在git上给他们留言,寻求帮助。 

    https://github.com/kintone/kintone-java-sdk

    引用 充满愤怒的人生你快乐吗 的回复:

    请问java里给单选框赋值要怎么做? 在record类里没有找到单选框试着用  record.setString('ProductType','部品') 这样的方式,但是报错,输入值错误。

    //
    // Source code recreated from a .class file by IntelliJ IDEA
    // (powered by Fernflower decompiler)
    //
    package com.cybozu.kintone.database;
    import com.cybozu.kintone.database.exception.TypeMismatchException;
    import java.io.File;
    import java.io.InputStream;
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Set;
    import java.util.TimeZone;
    import java.util.Map.Entry;
    public class Record implements Cloneable {
        public static final String DATETIME_PATTERN = "yyyy-MM-dd'T'HH:mm:ss'Z'";
        public static final String DATE_PATTERN = "yyyy-MM-dd";
        private long id;
        private long revision;
        private HashMap<String, Field> fields = new HashMap();
        public Record() {
            this.id = -1L;
            this.revision = -1L;
        }
        public Record(long id) {
            this.id = id;
        }
        public Record(long id, long revision) {
            this.id = id;
            this.revision = revision;
        }
        public Object clone() {
            Record record = new Record(this.id, this.revision);
            Iterator var2 = this.fields.keySet().iterator();
            while(var2.hasNext()) {
                String key = (String)var2.next();
                Field field = (Field)this.fields.get(key);
                record.addField(key, field);
            }
            return record;
        }
        public Set<Entry<String, Field>> getEntrySet() {
            return this.fields.entrySet();
        }
        public Set<String> getFieldNames() {
            return this.fields.keySet();
        }
        public Field getField(String name) {
            return (Field)this.fields.get(name);
        }
        public void addField(String name, Field field) {
            if (field.getFieldType() == FieldType.__ID__) {
                try {
                    this.setId(field.getAsLong());
                } catch (TypeMismatchException var5) {
                    var5.printStackTrace();
                }
            } else if (field.getFieldType() == FieldType.__REVISION__) {
                try {
                    this.setRevision(field.getAsLong());
                } catch (TypeMismatchException var4) {
                    var4.printStackTrace();
                }
            } else {
                this.fields.put(name, field);
            }
        }
        public void setId(long id) {
            this.id = id;
        }
        public Long getId() {
            return this.id;
        }
        public void setRevision(long revision) {
            this.revision = revision;
        }
        public Long getRevision() {
            return this.revision;
        }
        public boolean hasRevision() {
            return this.revision >= 0L;
        }
        public boolean isEmpty(String name) {
            return ((Field)this.fields.get(name)).isEmpty();
        }
        public boolean hasField(String name) {
            return this.fields.containsKey(name);
        }
        public Long getLong(String name) {
            return ((Field)this.fields.get(name)).getAsLong();
        }
        public String getString(String name) {
            return ((Field)this.fields.get(name)).getAsString();
        }
        public List<String> getStrings(String name) {
            return ((Field)this.fields.get(name)).getAsStringList();
        }
        public List<FileDto> getFiles(String name) {
            return ((Field)this.fields.get(name)).getAsFileList();
        }
        public UserDto getUser(String name) {
            return ((Field)this.fields.get(name)).getAsUserInfo();
        }
        public List<UserDto> getUsers(String name) {
            return ((Field)this.fields.get(name)).getAsUserList();
        }
        public Date getDateTime(String name) {
            String strDate = ((Field)this.fields.get(name)).getAsString();
            if (strDate != null && !strDate.isEmpty()) {
                try {
                    DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
                    df.setTimeZone(TimeZone.getTimeZone("UTC"));
                    return df.parse(strDate);
                } catch (ParseException var4) {
                    throw new TypeMismatchException();
                }
            } else {
                return null;
            }
        }
        public Date getDate(String name) {
            String strDate = ((Field)this.fields.get(name)).getAsString();
            if (strDate != null && !strDate.isEmpty()) {
                try {
                    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
                    return df.parse(strDate);
                } catch (ParseException var4) {
                    throw new TypeMismatchException();
                }
            } else {
                return null;
            }
        }
        public List<Record> getSubtable(String name) {
            return ((Field)this.fields.get(name)).getAsSubtable();
        }
        public void setString(String name, String value) {
            Field field = new Field(name, FieldType.SINGLE_LINE_TEXT, value);
            this.addField(name, field);
        }
        public void setLong(String name, long value) {
            Field field = new Field(name, FieldType.NUMBER, value);
            this.addField(name, field);
        }
        public void setUser(String name, String code) {
            UserDto user = new UserDto();
            user.setCode(code);
            Field field = new Field(name, FieldType.CREATOR, user);
            this.addField(name, field);
        }
        public void setUsers(String name, List<String> codes) {
            List<UserDto> list = new ArrayList();
            Iterator var4 = codes.iterator();
            while(var4.hasNext()) {
                String code = (String)var4.next();
                UserDto user = new UserDto();
                user.setCode(code);
                list.add(user);
            }
            Field field = new Field(name, FieldType.USER_SELECT, list);
            this.addField(name, field);
        }
        public void setFile(String name, File file) {
            this.setFile(name, (File)file, (String)null);
        }
        public void setFile(String name, File file, String contentType) {
            Field field = new Field(name, FieldType.FILE, (Object)null);
            LazyUploader uploader = new FileLazyUploader(file, contentType);
            field.setLazyUploader(uploader);
            this.addField(name, field);
        }
        public void setFile(String name, InputStream file, String fileName) {
            this.setFile(name, file, fileName, (String)null);
        }
        public void setFile(String name, InputStream file, String fileName, String contentType) {
            Field field = new Field(name, FieldType.FILE, (Object)null);
            LazyUploader uploader = new InputStreamLazyUploader(file, fileName, contentType);
            field.setLazyUploader(uploader);
            this.addField(name, field);
        }
        public void setFiles(String name, List<String> fileKeys) {
            List<FileDto> list = new ArrayList();
            Iterator var4 = fileKeys.iterator();
            while(var4.hasNext()) {
                String key = (String)var4.next();
                FileDto file = new FileDto();
                file.setFileKey(key);
                list.add(file);
            }
            Field field = new Field(name, FieldType.FILE, list);
            this.addField(name, field);
        }
        public void setStrings(String name, List<String> values) {
            List<String> list = new ArrayList();
            Iterator var4 = values.iterator();
            while(var4.hasNext()) {
                String value = (String)var4.next();
                list.add(value);
            }
            Field field = new Field(name, FieldType.MULTI_SELECT, list);
            this.addField(name, field);
        }
        public void setDateTime(String name, Date date) {
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
            df.setTimeZone(TimeZone.getTimeZone("UTC"));
            String strDate = df.format(date);
            this.setString(name, strDate);
        }
        public void setDate(String name, Date date) {
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            String strDate = df.format(date);
            this.setString(name, strDate);
        }
        public void setSubtable(String name, List<Record> value) {
            Field field = new Field(name, FieldType.SUBTABLE, value);
            this.addField(name, field);
        }
        public FieldType getFieldType(String name) {
            return ((Field)this.fields.get(name)).getFieldType();
        }
  • 充满愤怒的人生你快乐吗

    请问java里给单选框赋值要怎么做? 在record类里没有找到单选框

    试着用  record.setString('ProductType','部品') 这样的方式,但是报错,输入值错误。

    //
    // Source code recreated from a .class file by IntelliJ IDEA
    // (powered by Fernflower decompiler)
    //
    package com.cybozu.kintone.database;
    import com.cybozu.kintone.database.exception.TypeMismatchException;
    import java.io.File;
    import java.io.InputStream;
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Set;
    import java.util.TimeZone;
    import java.util.Map.Entry;
    public class Record implements Cloneable {
        public static final String DATETIME_PATTERN = "yyyy-MM-dd'T'HH:mm:ss'Z'";
        public static final String DATE_PATTERN = "yyyy-MM-dd";
        private long id;
        private long revision;
        private HashMap<String, Field> fields = new HashMap();
        public Record() {
            this.id = -1L;
            this.revision = -1L;
        }
        public Record(long id) {
            this.id = id;
        }
        public Record(long id, long revision) {
            this.id = id;
            this.revision = revision;
        }
        public Object clone() {
            Record record = new Record(this.id, this.revision);
            Iterator var2 = this.fields.keySet().iterator();
            while(var2.hasNext()) {
                String key = (String)var2.next();
                Field field = (Field)this.fields.get(key);
                record.addField(key, field);
            }
            return record;
        }
        public Set<Entry<String, Field>> getEntrySet() {
            return this.fields.entrySet();
        }
        public Set<String> getFieldNames() {
            return this.fields.keySet();
        }
        public Field getField(String name) {
            return (Field)this.fields.get(name);
        }
        public void addField(String name, Field field) {
            if (field.getFieldType() == FieldType.__ID__) {
                try {
                    this.setId(field.getAsLong());
                } catch (TypeMismatchException var5) {
                    var5.printStackTrace();
                }
            } else if (field.getFieldType() == FieldType.__REVISION__) {
                try {
                    this.setRevision(field.getAsLong());
                } catch (TypeMismatchException var4) {
                    var4.printStackTrace();
                }
            } else {
                this.fields.put(name, field);
            }
        }
        public void setId(long id) {
            this.id = id;
        }
        public Long getId() {
            return this.id;
        }
        public void setRevision(long revision) {
            this.revision = revision;
        }
        public Long getRevision() {
            return this.revision;
        }
        public boolean hasRevision() {
            return this.revision >= 0L;
        }
        public boolean isEmpty(String name) {
            return ((Field)this.fields.get(name)).isEmpty();
        }
        public boolean hasField(String name) {
            return this.fields.containsKey(name);
        }
        public Long getLong(String name) {
            return ((Field)this.fields.get(name)).getAsLong();
        }
        public String getString(String name) {
            return ((Field)this.fields.get(name)).getAsString();
        }
        public List<String> getStrings(String name) {
            return ((Field)this.fields.get(name)).getAsStringList();
        }
        public List<FileDto> getFiles(String name) {
            return ((Field)this.fields.get(name)).getAsFileList();
        }
        public UserDto getUser(String name) {
            return ((Field)this.fields.get(name)).getAsUserInfo();
        }
        public List<UserDto> getUsers(String name) {
            return ((Field)this.fields.get(name)).getAsUserList();
        }
        public Date getDateTime(String name) {
            String strDate = ((Field)this.fields.get(name)).getAsString();
            if (strDate != null && !strDate.isEmpty()) {
                try {
                    DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
                    df.setTimeZone(TimeZone.getTimeZone("UTC"));
                    return df.parse(strDate);
                } catch (ParseException var4) {
                    throw new TypeMismatchException();
                }
            } else {
                return null;
            }
        }
        public Date getDate(String name) {
            String strDate = ((Field)this.fields.get(name)).getAsString();
            if (strDate != null && !strDate.isEmpty()) {
                try {
                    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
                    return df.parse(strDate);
                } catch (ParseException var4) {
                    throw new TypeMismatchException();
                }
            } else {
                return null;
            }
        }
        public List<Record> getSubtable(String name) {
            return ((Field)this.fields.get(name)).getAsSubtable();
        }
        public void setString(String name, String value) {
            Field field = new Field(name, FieldType.SINGLE_LINE_TEXT, value);
            this.addField(name, field);
        }
        public void setLong(String name, long value) {
            Field field = new Field(name, FieldType.NUMBER, value);
            this.addField(name, field);
        }
        public void setUser(String name, String code) {
            UserDto user = new UserDto();
            user.setCode(code);
            Field field = new Field(name, FieldType.CREATOR, user);
            this.addField(name, field);
        }
        public void setUsers(String name, List<String> codes) {
            List<UserDto> list = new ArrayList();
            Iterator var4 = codes.iterator();
            while(var4.hasNext()) {
                String code = (String)var4.next();
                UserDto user = new UserDto();
                user.setCode(code);
                list.add(user);
            }
            Field field = new Field(name, FieldType.USER_SELECT, list);
            this.addField(name, field);
        }
        public void setFile(String name, File file) {
            this.setFile(name, (File)file, (String)null);
        }
        public void setFile(String name, File file, String contentType) {
            Field field = new Field(name, FieldType.FILE, (Object)null);
            LazyUploader uploader = new FileLazyUploader(file, contentType);
            field.setLazyUploader(uploader);
            this.addField(name, field);
        }
        public void setFile(String name, InputStream file, String fileName) {
            this.setFile(name, file, fileName, (String)null);
        }
        public void setFile(String name, InputStream file, String fileName, String contentType) {
            Field field = new Field(name, FieldType.FILE, (Object)null);
            LazyUploader uploader = new InputStreamLazyUploader(file, fileName, contentType);
            field.setLazyUploader(uploader);
            this.addField(name, field);
        }
        public void setFiles(String name, List<String> fileKeys) {
            List<FileDto> list = new ArrayList();
            Iterator var4 = fileKeys.iterator();
            while(var4.hasNext()) {
                String key = (String)var4.next();
                FileDto file = new FileDto();
                file.setFileKey(key);
                list.add(file);
            }
            Field field = new Field(name, FieldType.FILE, list);
            this.addField(name, field);
        }
        public void setStrings(String name, List<String> values) {
            List<String> list = new ArrayList();
            Iterator var4 = values.iterator();
            while(var4.hasNext()) {
                String value = (String)var4.next();
                list.add(value);
            }
            Field field = new Field(name, FieldType.MULTI_SELECT, list);
            this.addField(name, field);
        }
        public void setDateTime(String name, Date date) {
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
            df.setTimeZone(TimeZone.getTimeZone("UTC"));
            String strDate = df.format(date);
            this.setString(name, strDate);
        }
        public void setDate(String name, Date date) {
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            String strDate = df.format(date);
            this.setString(name, strDate);
        }
        public void setSubtable(String name, List<Record> value) {
            Field field = new Field(name, FieldType.SUBTABLE, value);
            this.addField(name, field);
        }
        public FieldType getFieldType(String name) {
            return ((Field)this.fields.get(name)).getFieldType();
        }